import type * as runtime from "@prisma/client/runtime/client";
import type * as Prisma from "../internal/prismaNamespace";
export type UserBranchModel = runtime.Types.Result.DefaultSelection<Prisma.$UserBranchPayload>;
export type AggregateUserBranch = {
    _count: UserBranchCountAggregateOutputType | null;
    _min: UserBranchMinAggregateOutputType | null;
    _max: UserBranchMaxAggregateOutputType | null;
};
export type UserBranchMinAggregateOutputType = {
    id: string | null;
    userId: string | null;
    branchId: string | null;
};
export type UserBranchMaxAggregateOutputType = {
    id: string | null;
    userId: string | null;
    branchId: string | null;
};
export type UserBranchCountAggregateOutputType = {
    id: number;
    userId: number;
    branchId: number;
    _all: number;
};
export type UserBranchMinAggregateInputType = {
    id?: true;
    userId?: true;
    branchId?: true;
};
export type UserBranchMaxAggregateInputType = {
    id?: true;
    userId?: true;
    branchId?: true;
};
export type UserBranchCountAggregateInputType = {
    id?: true;
    userId?: true;
    branchId?: true;
    _all?: true;
};
export type UserBranchAggregateArgs<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {
    where?: Prisma.UserBranchWhereInput;
    orderBy?: Prisma.UserBranchOrderByWithRelationInput | Prisma.UserBranchOrderByWithRelationInput[];
    cursor?: Prisma.UserBranchWhereUniqueInput;
    take?: number;
    skip?: number;
    _count?: true | UserBranchCountAggregateInputType;
    _min?: UserBranchMinAggregateInputType;
    _max?: UserBranchMaxAggregateInputType;
};
export type GetUserBranchAggregateType<T extends UserBranchAggregateArgs> = {
    [P in keyof T & keyof AggregateUserBranch]: P extends '_count' | 'count' ? T[P] extends true ? number : Prisma.GetScalarType<T[P], AggregateUserBranch[P]> : Prisma.GetScalarType<T[P], AggregateUserBranch[P]>;
};
export type UserBranchGroupByArgs<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {
    where?: Prisma.UserBranchWhereInput;
    orderBy?: Prisma.UserBranchOrderByWithAggregationInput | Prisma.UserBranchOrderByWithAggregationInput[];
    by: Prisma.UserBranchScalarFieldEnum[] | Prisma.UserBranchScalarFieldEnum;
    having?: Prisma.UserBranchScalarWhereWithAggregatesInput;
    take?: number;
    skip?: number;
    _count?: UserBranchCountAggregateInputType | true;
    _min?: UserBranchMinAggregateInputType;
    _max?: UserBranchMaxAggregateInputType;
};
export type UserBranchGroupByOutputType = {
    id: string;
    userId: string;
    branchId: string;
    _count: UserBranchCountAggregateOutputType | null;
    _min: UserBranchMinAggregateOutputType | null;
    _max: UserBranchMaxAggregateOutputType | null;
};
type GetUserBranchGroupByPayload<T extends UserBranchGroupByArgs> = Prisma.PrismaPromise<Array<Prisma.PickEnumerable<UserBranchGroupByOutputType, T['by']> & {
    [P in ((keyof T) & (keyof UserBranchGroupByOutputType))]: P extends '_count' ? T[P] extends boolean ? number : Prisma.GetScalarType<T[P], UserBranchGroupByOutputType[P]> : Prisma.GetScalarType<T[P], UserBranchGroupByOutputType[P]>;
}>>;
export type UserBranchWhereInput = {
    AND?: Prisma.UserBranchWhereInput | Prisma.UserBranchWhereInput[];
    OR?: Prisma.UserBranchWhereInput[];
    NOT?: Prisma.UserBranchWhereInput | Prisma.UserBranchWhereInput[];
    id?: Prisma.StringFilter<"UserBranch"> | string;
    userId?: Prisma.StringFilter<"UserBranch"> | string;
    branchId?: Prisma.StringFilter<"UserBranch"> | string;
    user?: Prisma.XOR<Prisma.UserScalarRelationFilter, Prisma.UserWhereInput>;
    branch?: Prisma.XOR<Prisma.BranchScalarRelationFilter, Prisma.BranchWhereInput>;
};
export type UserBranchOrderByWithRelationInput = {
    id?: Prisma.SortOrder;
    userId?: Prisma.SortOrder;
    branchId?: Prisma.SortOrder;
    user?: Prisma.UserOrderByWithRelationInput;
    branch?: Prisma.BranchOrderByWithRelationInput;
};
export type UserBranchWhereUniqueInput = Prisma.AtLeast<{
    id?: string;
    userId_branchId?: Prisma.UserBranchUserIdBranchIdCompoundUniqueInput;
    AND?: Prisma.UserBranchWhereInput | Prisma.UserBranchWhereInput[];
    OR?: Prisma.UserBranchWhereInput[];
    NOT?: Prisma.UserBranchWhereInput | Prisma.UserBranchWhereInput[];
    userId?: Prisma.StringFilter<"UserBranch"> | string;
    branchId?: Prisma.StringFilter<"UserBranch"> | string;
    user?: Prisma.XOR<Prisma.UserScalarRelationFilter, Prisma.UserWhereInput>;
    branch?: Prisma.XOR<Prisma.BranchScalarRelationFilter, Prisma.BranchWhereInput>;
}, "id" | "userId_branchId">;
export type UserBranchOrderByWithAggregationInput = {
    id?: Prisma.SortOrder;
    userId?: Prisma.SortOrder;
    branchId?: Prisma.SortOrder;
    _count?: Prisma.UserBranchCountOrderByAggregateInput;
    _max?: Prisma.UserBranchMaxOrderByAggregateInput;
    _min?: Prisma.UserBranchMinOrderByAggregateInput;
};
export type UserBranchScalarWhereWithAggregatesInput = {
    AND?: Prisma.UserBranchScalarWhereWithAggregatesInput | Prisma.UserBranchScalarWhereWithAggregatesInput[];
    OR?: Prisma.UserBranchScalarWhereWithAggregatesInput[];
    NOT?: Prisma.UserBranchScalarWhereWithAggregatesInput | Prisma.UserBranchScalarWhereWithAggregatesInput[];
    id?: Prisma.StringWithAggregatesFilter<"UserBranch"> | string;
    userId?: Prisma.StringWithAggregatesFilter<"UserBranch"> | string;
    branchId?: Prisma.StringWithAggregatesFilter<"UserBranch"> | string;
};
export type UserBranchCreateInput = {
    id?: string;
    user: Prisma.UserCreateNestedOneWithoutBranchesInput;
    branch: Prisma.BranchCreateNestedOneWithoutUsersInput;
};
export type UserBranchUncheckedCreateInput = {
    id?: string;
    userId: string;
    branchId: string;
};
export type UserBranchUpdateInput = {
    id?: Prisma.StringFieldUpdateOperationsInput | string;
    user?: Prisma.UserUpdateOneRequiredWithoutBranchesNestedInput;
    branch?: Prisma.BranchUpdateOneRequiredWithoutUsersNestedInput;
};
export type UserBranchUncheckedUpdateInput = {
    id?: Prisma.StringFieldUpdateOperationsInput | string;
    userId?: Prisma.StringFieldUpdateOperationsInput | string;
    branchId?: Prisma.StringFieldUpdateOperationsInput | string;
};
export type UserBranchCreateManyInput = {
    id?: string;
    userId: string;
    branchId: string;
};
export type UserBranchUpdateManyMutationInput = {
    id?: Prisma.StringFieldUpdateOperationsInput | string;
};
export type UserBranchUncheckedUpdateManyInput = {
    id?: Prisma.StringFieldUpdateOperationsInput | string;
    userId?: Prisma.StringFieldUpdateOperationsInput | string;
    branchId?: Prisma.StringFieldUpdateOperationsInput | string;
};
export type UserBranchListRelationFilter = {
    every?: Prisma.UserBranchWhereInput;
    some?: Prisma.UserBranchWhereInput;
    none?: Prisma.UserBranchWhereInput;
};
export type UserBranchOrderByRelationAggregateInput = {
    _count?: Prisma.SortOrder;
};
export type UserBranchUserIdBranchIdCompoundUniqueInput = {
    userId: string;
    branchId: string;
};
export type UserBranchCountOrderByAggregateInput = {
    id?: Prisma.SortOrder;
    userId?: Prisma.SortOrder;
    branchId?: Prisma.SortOrder;
};
export type UserBranchMaxOrderByAggregateInput = {
    id?: Prisma.SortOrder;
    userId?: Prisma.SortOrder;
    branchId?: Prisma.SortOrder;
};
export type UserBranchMinOrderByAggregateInput = {
    id?: Prisma.SortOrder;
    userId?: Prisma.SortOrder;
    branchId?: Prisma.SortOrder;
};
export type UserBranchCreateNestedManyWithoutUserInput = {
    create?: Prisma.XOR<Prisma.UserBranchCreateWithoutUserInput, Prisma.UserBranchUncheckedCreateWithoutUserInput> | Prisma.UserBranchCreateWithoutUserInput[] | Prisma.UserBranchUncheckedCreateWithoutUserInput[];
    connectOrCreate?: Prisma.UserBranchCreateOrConnectWithoutUserInput | Prisma.UserBranchCreateOrConnectWithoutUserInput[];
    createMany?: Prisma.UserBranchCreateManyUserInputEnvelope;
    connect?: Prisma.UserBranchWhereUniqueInput | Prisma.UserBranchWhereUniqueInput[];
};
export type UserBranchUncheckedCreateNestedManyWithoutUserInput = {
    create?: Prisma.XOR<Prisma.UserBranchCreateWithoutUserInput, Prisma.UserBranchUncheckedCreateWithoutUserInput> | Prisma.UserBranchCreateWithoutUserInput[] | Prisma.UserBranchUncheckedCreateWithoutUserInput[];
    connectOrCreate?: Prisma.UserBranchCreateOrConnectWithoutUserInput | Prisma.UserBranchCreateOrConnectWithoutUserInput[];
    createMany?: Prisma.UserBranchCreateManyUserInputEnvelope;
    connect?: Prisma.UserBranchWhereUniqueInput | Prisma.UserBranchWhereUniqueInput[];
};
export type UserBranchUpdateManyWithoutUserNestedInput = {
    create?: Prisma.XOR<Prisma.UserBranchCreateWithoutUserInput, Prisma.UserBranchUncheckedCreateWithoutUserInput> | Prisma.UserBranchCreateWithoutUserInput[] | Prisma.UserBranchUncheckedCreateWithoutUserInput[];
    connectOrCreate?: Prisma.UserBranchCreateOrConnectWithoutUserInput | Prisma.UserBranchCreateOrConnectWithoutUserInput[];
    upsert?: Prisma.UserBranchUpsertWithWhereUniqueWithoutUserInput | Prisma.UserBranchUpsertWithWhereUniqueWithoutUserInput[];
    createMany?: Prisma.UserBranchCreateManyUserInputEnvelope;
    set?: Prisma.UserBranchWhereUniqueInput | Prisma.UserBranchWhereUniqueInput[];
    disconnect?: Prisma.UserBranchWhereUniqueInput | Prisma.UserBranchWhereUniqueInput[];
    delete?: Prisma.UserBranchWhereUniqueInput | Prisma.UserBranchWhereUniqueInput[];
    connect?: Prisma.UserBranchWhereUniqueInput | Prisma.UserBranchWhereUniqueInput[];
    update?: Prisma.UserBranchUpdateWithWhereUniqueWithoutUserInput | Prisma.UserBranchUpdateWithWhereUniqueWithoutUserInput[];
    updateMany?: Prisma.UserBranchUpdateManyWithWhereWithoutUserInput | Prisma.UserBranchUpdateManyWithWhereWithoutUserInput[];
    deleteMany?: Prisma.UserBranchScalarWhereInput | Prisma.UserBranchScalarWhereInput[];
};
export type UserBranchUncheckedUpdateManyWithoutUserNestedInput = {
    create?: Prisma.XOR<Prisma.UserBranchCreateWithoutUserInput, Prisma.UserBranchUncheckedCreateWithoutUserInput> | Prisma.UserBranchCreateWithoutUserInput[] | Prisma.UserBranchUncheckedCreateWithoutUserInput[];
    connectOrCreate?: Prisma.UserBranchCreateOrConnectWithoutUserInput | Prisma.UserBranchCreateOrConnectWithoutUserInput[];
    upsert?: Prisma.UserBranchUpsertWithWhereUniqueWithoutUserInput | Prisma.UserBranchUpsertWithWhereUniqueWithoutUserInput[];
    createMany?: Prisma.UserBranchCreateManyUserInputEnvelope;
    set?: Prisma.UserBranchWhereUniqueInput | Prisma.UserBranchWhereUniqueInput[];
    disconnect?: Prisma.UserBranchWhereUniqueInput | Prisma.UserBranchWhereUniqueInput[];
    delete?: Prisma.UserBranchWhereUniqueInput | Prisma.UserBranchWhereUniqueInput[];
    connect?: Prisma.UserBranchWhereUniqueInput | Prisma.UserBranchWhereUniqueInput[];
    update?: Prisma.UserBranchUpdateWithWhereUniqueWithoutUserInput | Prisma.UserBranchUpdateWithWhereUniqueWithoutUserInput[];
    updateMany?: Prisma.UserBranchUpdateManyWithWhereWithoutUserInput | Prisma.UserBranchUpdateManyWithWhereWithoutUserInput[];
    deleteMany?: Prisma.UserBranchScalarWhereInput | Prisma.UserBranchScalarWhereInput[];
};
export type UserBranchCreateNestedManyWithoutBranchInput = {
    create?: Prisma.XOR<Prisma.UserBranchCreateWithoutBranchInput, Prisma.UserBranchUncheckedCreateWithoutBranchInput> | Prisma.UserBranchCreateWithoutBranchInput[] | Prisma.UserBranchUncheckedCreateWithoutBranchInput[];
    connectOrCreate?: Prisma.UserBranchCreateOrConnectWithoutBranchInput | Prisma.UserBranchCreateOrConnectWithoutBranchInput[];
    createMany?: Prisma.UserBranchCreateManyBranchInputEnvelope;
    connect?: Prisma.UserBranchWhereUniqueInput | Prisma.UserBranchWhereUniqueInput[];
};
export type UserBranchUncheckedCreateNestedManyWithoutBranchInput = {
    create?: Prisma.XOR<Prisma.UserBranchCreateWithoutBranchInput, Prisma.UserBranchUncheckedCreateWithoutBranchInput> | Prisma.UserBranchCreateWithoutBranchInput[] | Prisma.UserBranchUncheckedCreateWithoutBranchInput[];
    connectOrCreate?: Prisma.UserBranchCreateOrConnectWithoutBranchInput | Prisma.UserBranchCreateOrConnectWithoutBranchInput[];
    createMany?: Prisma.UserBranchCreateManyBranchInputEnvelope;
    connect?: Prisma.UserBranchWhereUniqueInput | Prisma.UserBranchWhereUniqueInput[];
};
export type UserBranchUpdateManyWithoutBranchNestedInput = {
    create?: Prisma.XOR<Prisma.UserBranchCreateWithoutBranchInput, Prisma.UserBranchUncheckedCreateWithoutBranchInput> | Prisma.UserBranchCreateWithoutBranchInput[] | Prisma.UserBranchUncheckedCreateWithoutBranchInput[];
    connectOrCreate?: Prisma.UserBranchCreateOrConnectWithoutBranchInput | Prisma.UserBranchCreateOrConnectWithoutBranchInput[];
    upsert?: Prisma.UserBranchUpsertWithWhereUniqueWithoutBranchInput | Prisma.UserBranchUpsertWithWhereUniqueWithoutBranchInput[];
    createMany?: Prisma.UserBranchCreateManyBranchInputEnvelope;
    set?: Prisma.UserBranchWhereUniqueInput | Prisma.UserBranchWhereUniqueInput[];
    disconnect?: Prisma.UserBranchWhereUniqueInput | Prisma.UserBranchWhereUniqueInput[];
    delete?: Prisma.UserBranchWhereUniqueInput | Prisma.UserBranchWhereUniqueInput[];
    connect?: Prisma.UserBranchWhereUniqueInput | Prisma.UserBranchWhereUniqueInput[];
    update?: Prisma.UserBranchUpdateWithWhereUniqueWithoutBranchInput | Prisma.UserBranchUpdateWithWhereUniqueWithoutBranchInput[];
    updateMany?: Prisma.UserBranchUpdateManyWithWhereWithoutBranchInput | Prisma.UserBranchUpdateManyWithWhereWithoutBranchInput[];
    deleteMany?: Prisma.UserBranchScalarWhereInput | Prisma.UserBranchScalarWhereInput[];
};
export type UserBranchUncheckedUpdateManyWithoutBranchNestedInput = {
    create?: Prisma.XOR<Prisma.UserBranchCreateWithoutBranchInput, Prisma.UserBranchUncheckedCreateWithoutBranchInput> | Prisma.UserBranchCreateWithoutBranchInput[] | Prisma.UserBranchUncheckedCreateWithoutBranchInput[];
    connectOrCreate?: Prisma.UserBranchCreateOrConnectWithoutBranchInput | Prisma.UserBranchCreateOrConnectWithoutBranchInput[];
    upsert?: Prisma.UserBranchUpsertWithWhereUniqueWithoutBranchInput | Prisma.UserBranchUpsertWithWhereUniqueWithoutBranchInput[];
    createMany?: Prisma.UserBranchCreateManyBranchInputEnvelope;
    set?: Prisma.UserBranchWhereUniqueInput | Prisma.UserBranchWhereUniqueInput[];
    disconnect?: Prisma.UserBranchWhereUniqueInput | Prisma.UserBranchWhereUniqueInput[];
    delete?: Prisma.UserBranchWhereUniqueInput | Prisma.UserBranchWhereUniqueInput[];
    connect?: Prisma.UserBranchWhereUniqueInput | Prisma.UserBranchWhereUniqueInput[];
    update?: Prisma.UserBranchUpdateWithWhereUniqueWithoutBranchInput | Prisma.UserBranchUpdateWithWhereUniqueWithoutBranchInput[];
    updateMany?: Prisma.UserBranchUpdateManyWithWhereWithoutBranchInput | Prisma.UserBranchUpdateManyWithWhereWithoutBranchInput[];
    deleteMany?: Prisma.UserBranchScalarWhereInput | Prisma.UserBranchScalarWhereInput[];
};
export type UserBranchCreateWithoutUserInput = {
    id?: string;
    branch: Prisma.BranchCreateNestedOneWithoutUsersInput;
};
export type UserBranchUncheckedCreateWithoutUserInput = {
    id?: string;
    branchId: string;
};
export type UserBranchCreateOrConnectWithoutUserInput = {
    where: Prisma.UserBranchWhereUniqueInput;
    create: Prisma.XOR<Prisma.UserBranchCreateWithoutUserInput, Prisma.UserBranchUncheckedCreateWithoutUserInput>;
};
export type UserBranchCreateManyUserInputEnvelope = {
    data: Prisma.UserBranchCreateManyUserInput | Prisma.UserBranchCreateManyUserInput[];
    skipDuplicates?: boolean;
};
export type UserBranchUpsertWithWhereUniqueWithoutUserInput = {
    where: Prisma.UserBranchWhereUniqueInput;
    update: Prisma.XOR<Prisma.UserBranchUpdateWithoutUserInput, Prisma.UserBranchUncheckedUpdateWithoutUserInput>;
    create: Prisma.XOR<Prisma.UserBranchCreateWithoutUserInput, Prisma.UserBranchUncheckedCreateWithoutUserInput>;
};
export type UserBranchUpdateWithWhereUniqueWithoutUserInput = {
    where: Prisma.UserBranchWhereUniqueInput;
    data: Prisma.XOR<Prisma.UserBranchUpdateWithoutUserInput, Prisma.UserBranchUncheckedUpdateWithoutUserInput>;
};
export type UserBranchUpdateManyWithWhereWithoutUserInput = {
    where: Prisma.UserBranchScalarWhereInput;
    data: Prisma.XOR<Prisma.UserBranchUpdateManyMutationInput, Prisma.UserBranchUncheckedUpdateManyWithoutUserInput>;
};
export type UserBranchScalarWhereInput = {
    AND?: Prisma.UserBranchScalarWhereInput | Prisma.UserBranchScalarWhereInput[];
    OR?: Prisma.UserBranchScalarWhereInput[];
    NOT?: Prisma.UserBranchScalarWhereInput | Prisma.UserBranchScalarWhereInput[];
    id?: Prisma.StringFilter<"UserBranch"> | string;
    userId?: Prisma.StringFilter<"UserBranch"> | string;
    branchId?: Prisma.StringFilter<"UserBranch"> | string;
};
export type UserBranchCreateWithoutBranchInput = {
    id?: string;
    user: Prisma.UserCreateNestedOneWithoutBranchesInput;
};
export type UserBranchUncheckedCreateWithoutBranchInput = {
    id?: string;
    userId: string;
};
export type UserBranchCreateOrConnectWithoutBranchInput = {
    where: Prisma.UserBranchWhereUniqueInput;
    create: Prisma.XOR<Prisma.UserBranchCreateWithoutBranchInput, Prisma.UserBranchUncheckedCreateWithoutBranchInput>;
};
export type UserBranchCreateManyBranchInputEnvelope = {
    data: Prisma.UserBranchCreateManyBranchInput | Prisma.UserBranchCreateManyBranchInput[];
    skipDuplicates?: boolean;
};
export type UserBranchUpsertWithWhereUniqueWithoutBranchInput = {
    where: Prisma.UserBranchWhereUniqueInput;
    update: Prisma.XOR<Prisma.UserBranchUpdateWithoutBranchInput, Prisma.UserBranchUncheckedUpdateWithoutBranchInput>;
    create: Prisma.XOR<Prisma.UserBranchCreateWithoutBranchInput, Prisma.UserBranchUncheckedCreateWithoutBranchInput>;
};
export type UserBranchUpdateWithWhereUniqueWithoutBranchInput = {
    where: Prisma.UserBranchWhereUniqueInput;
    data: Prisma.XOR<Prisma.UserBranchUpdateWithoutBranchInput, Prisma.UserBranchUncheckedUpdateWithoutBranchInput>;
};
export type UserBranchUpdateManyWithWhereWithoutBranchInput = {
    where: Prisma.UserBranchScalarWhereInput;
    data: Prisma.XOR<Prisma.UserBranchUpdateManyMutationInput, Prisma.UserBranchUncheckedUpdateManyWithoutBranchInput>;
};
export type UserBranchCreateManyUserInput = {
    id?: string;
    branchId: string;
};
export type UserBranchUpdateWithoutUserInput = {
    id?: Prisma.StringFieldUpdateOperationsInput | string;
    branch?: Prisma.BranchUpdateOneRequiredWithoutUsersNestedInput;
};
export type UserBranchUncheckedUpdateWithoutUserInput = {
    id?: Prisma.StringFieldUpdateOperationsInput | string;
    branchId?: Prisma.StringFieldUpdateOperationsInput | string;
};
export type UserBranchUncheckedUpdateManyWithoutUserInput = {
    id?: Prisma.StringFieldUpdateOperationsInput | string;
    branchId?: Prisma.StringFieldUpdateOperationsInput | string;
};
export type UserBranchCreateManyBranchInput = {
    id?: string;
    userId: string;
};
export type UserBranchUpdateWithoutBranchInput = {
    id?: Prisma.StringFieldUpdateOperationsInput | string;
    user?: Prisma.UserUpdateOneRequiredWithoutBranchesNestedInput;
};
export type UserBranchUncheckedUpdateWithoutBranchInput = {
    id?: Prisma.StringFieldUpdateOperationsInput | string;
    userId?: Prisma.StringFieldUpdateOperationsInput | string;
};
export type UserBranchUncheckedUpdateManyWithoutBranchInput = {
    id?: Prisma.StringFieldUpdateOperationsInput | string;
    userId?: Prisma.StringFieldUpdateOperationsInput | string;
};
export type UserBranchSelect<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = runtime.Types.Extensions.GetSelect<{
    id?: boolean;
    userId?: boolean;
    branchId?: boolean;
    user?: boolean | Prisma.UserDefaultArgs<ExtArgs>;
    branch?: boolean | Prisma.BranchDefaultArgs<ExtArgs>;
}, ExtArgs["result"]["userBranch"]>;
export type UserBranchSelectCreateManyAndReturn<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = runtime.Types.Extensions.GetSelect<{
    id?: boolean;
    userId?: boolean;
    branchId?: boolean;
    user?: boolean | Prisma.UserDefaultArgs<ExtArgs>;
    branch?: boolean | Prisma.BranchDefaultArgs<ExtArgs>;
}, ExtArgs["result"]["userBranch"]>;
export type UserBranchSelectUpdateManyAndReturn<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = runtime.Types.Extensions.GetSelect<{
    id?: boolean;
    userId?: boolean;
    branchId?: boolean;
    user?: boolean | Prisma.UserDefaultArgs<ExtArgs>;
    branch?: boolean | Prisma.BranchDefaultArgs<ExtArgs>;
}, ExtArgs["result"]["userBranch"]>;
export type UserBranchSelectScalar = {
    id?: boolean;
    userId?: boolean;
    branchId?: boolean;
};
export type UserBranchOmit<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = runtime.Types.Extensions.GetOmit<"id" | "userId" | "branchId", ExtArgs["result"]["userBranch"]>;
export type UserBranchInclude<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {
    user?: boolean | Prisma.UserDefaultArgs<ExtArgs>;
    branch?: boolean | Prisma.BranchDefaultArgs<ExtArgs>;
};
export type UserBranchIncludeCreateManyAndReturn<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {
    user?: boolean | Prisma.UserDefaultArgs<ExtArgs>;
    branch?: boolean | Prisma.BranchDefaultArgs<ExtArgs>;
};
export type UserBranchIncludeUpdateManyAndReturn<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {
    user?: boolean | Prisma.UserDefaultArgs<ExtArgs>;
    branch?: boolean | Prisma.BranchDefaultArgs<ExtArgs>;
};
export type $UserBranchPayload<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {
    name: "UserBranch";
    objects: {
        user: Prisma.$UserPayload<ExtArgs>;
        branch: Prisma.$BranchPayload<ExtArgs>;
    };
    scalars: runtime.Types.Extensions.GetPayloadResult<{
        id: string;
        userId: string;
        branchId: string;
    }, ExtArgs["result"]["userBranch"]>;
    composites: {};
};
export type UserBranchGetPayload<S extends boolean | null | undefined | UserBranchDefaultArgs> = runtime.Types.Result.GetResult<Prisma.$UserBranchPayload, S>;
export type UserBranchCountArgs<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = Omit<UserBranchFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
    select?: UserBranchCountAggregateInputType | true;
};
export interface UserBranchDelegate<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs, GlobalOmitOptions = {}> {
    [K: symbol]: {
        types: Prisma.TypeMap<ExtArgs>['model']['UserBranch'];
        meta: {
            name: 'UserBranch';
        };
    };
    findUnique<T extends UserBranchFindUniqueArgs>(args: Prisma.SelectSubset<T, UserBranchFindUniqueArgs<ExtArgs>>): Prisma.Prisma__UserBranchClient<runtime.Types.Result.GetResult<Prisma.$UserBranchPayload<ExtArgs>, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>;
    findUniqueOrThrow<T extends UserBranchFindUniqueOrThrowArgs>(args: Prisma.SelectSubset<T, UserBranchFindUniqueOrThrowArgs<ExtArgs>>): Prisma.Prisma__UserBranchClient<runtime.Types.Result.GetResult<Prisma.$UserBranchPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>;
    findFirst<T extends UserBranchFindFirstArgs>(args?: Prisma.SelectSubset<T, UserBranchFindFirstArgs<ExtArgs>>): Prisma.Prisma__UserBranchClient<runtime.Types.Result.GetResult<Prisma.$UserBranchPayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>;
    findFirstOrThrow<T extends UserBranchFindFirstOrThrowArgs>(args?: Prisma.SelectSubset<T, UserBranchFindFirstOrThrowArgs<ExtArgs>>): Prisma.Prisma__UserBranchClient<runtime.Types.Result.GetResult<Prisma.$UserBranchPayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>;
    findMany<T extends UserBranchFindManyArgs>(args?: Prisma.SelectSubset<T, UserBranchFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<runtime.Types.Result.GetResult<Prisma.$UserBranchPayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>;
    create<T extends UserBranchCreateArgs>(args: Prisma.SelectSubset<T, UserBranchCreateArgs<ExtArgs>>): Prisma.Prisma__UserBranchClient<runtime.Types.Result.GetResult<Prisma.$UserBranchPayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>;
    createMany<T extends UserBranchCreateManyArgs>(args?: Prisma.SelectSubset<T, UserBranchCreateManyArgs<ExtArgs>>): Prisma.PrismaPromise<Prisma.BatchPayload>;
    createManyAndReturn<T extends UserBranchCreateManyAndReturnArgs>(args?: Prisma.SelectSubset<T, UserBranchCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<runtime.Types.Result.GetResult<Prisma.$UserBranchPayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>;
    delete<T extends UserBranchDeleteArgs>(args: Prisma.SelectSubset<T, UserBranchDeleteArgs<ExtArgs>>): Prisma.Prisma__UserBranchClient<runtime.Types.Result.GetResult<Prisma.$UserBranchPayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>;
    update<T extends UserBranchUpdateArgs>(args: Prisma.SelectSubset<T, UserBranchUpdateArgs<ExtArgs>>): Prisma.Prisma__UserBranchClient<runtime.Types.Result.GetResult<Prisma.$UserBranchPayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>;
    deleteMany<T extends UserBranchDeleteManyArgs>(args?: Prisma.SelectSubset<T, UserBranchDeleteManyArgs<ExtArgs>>): Prisma.PrismaPromise<Prisma.BatchPayload>;
    updateMany<T extends UserBranchUpdateManyArgs>(args: Prisma.SelectSubset<T, UserBranchUpdateManyArgs<ExtArgs>>): Prisma.PrismaPromise<Prisma.BatchPayload>;
    updateManyAndReturn<T extends UserBranchUpdateManyAndReturnArgs>(args: Prisma.SelectSubset<T, UserBranchUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<runtime.Types.Result.GetResult<Prisma.$UserBranchPayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>;
    upsert<T extends UserBranchUpsertArgs>(args: Prisma.SelectSubset<T, UserBranchUpsertArgs<ExtArgs>>): Prisma.Prisma__UserBranchClient<runtime.Types.Result.GetResult<Prisma.$UserBranchPayload<ExtArgs>, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>;
    count<T extends UserBranchCountArgs>(args?: Prisma.Subset<T, UserBranchCountArgs>): Prisma.PrismaPromise<T extends runtime.Types.Utils.Record<'select', any> ? T['select'] extends true ? number : Prisma.GetScalarType<T['select'], UserBranchCountAggregateOutputType> : number>;
    aggregate<T extends UserBranchAggregateArgs>(args: Prisma.Subset<T, UserBranchAggregateArgs>): Prisma.PrismaPromise<GetUserBranchAggregateType<T>>;
    groupBy<T extends UserBranchGroupByArgs, HasSelectOrTake extends Prisma.Or<Prisma.Extends<'skip', Prisma.Keys<T>>, Prisma.Extends<'take', Prisma.Keys<T>>>, OrderByArg extends Prisma.True extends HasSelectOrTake ? {
        orderBy: UserBranchGroupByArgs['orderBy'];
    } : {
        orderBy?: UserBranchGroupByArgs['orderBy'];
    }, OrderFields extends Prisma.ExcludeUnderscoreKeys<Prisma.Keys<Prisma.MaybeTupleToUnion<T['orderBy']>>>, ByFields extends Prisma.MaybeTupleToUnion<T['by']>, ByValid extends Prisma.Has<ByFields, OrderFields>, HavingFields extends Prisma.GetHavingFields<T['having']>, HavingValid extends Prisma.Has<ByFields, HavingFields>, ByEmpty extends T['by'] extends never[] ? Prisma.True : Prisma.False, InputErrors extends ByEmpty extends Prisma.True ? `Error: "by" must not be empty.` : HavingValid extends Prisma.False ? {
        [P in HavingFields]: P extends ByFields ? never : P extends string ? `Error: Field "${P}" used in "having" needs to be provided in "by".` : [
            Error,
            'Field ',
            P,
            ` in "having" needs to be provided in "by"`
        ];
    }[HavingFields] : 'take' extends Prisma.Keys<T> ? 'orderBy' extends Prisma.Keys<T> ? ByValid extends Prisma.True ? {} : {
        [P in OrderFields]: P extends ByFields ? never : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`;
    }[OrderFields] : 'Error: If you provide "take", you also need to provide "orderBy"' : 'skip' extends Prisma.Keys<T> ? 'orderBy' extends Prisma.Keys<T> ? ByValid extends Prisma.True ? {} : {
        [P in OrderFields]: P extends ByFields ? never : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`;
    }[OrderFields] : 'Error: If you provide "skip", you also need to provide "orderBy"' : ByValid extends Prisma.True ? {} : {
        [P in OrderFields]: P extends ByFields ? never : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`;
    }[OrderFields]>(args: Prisma.SubsetIntersection<T, UserBranchGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetUserBranchGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>;
    readonly fields: UserBranchFieldRefs;
}
export interface Prisma__UserBranchClient<T, Null = never, ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise";
    user<T extends Prisma.UserDefaultArgs<ExtArgs> = {}>(args?: Prisma.Subset<T, Prisma.UserDefaultArgs<ExtArgs>>): Prisma.Prisma__UserClient<runtime.Types.Result.GetResult<Prisma.$UserPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions>;
    branch<T extends Prisma.BranchDefaultArgs<ExtArgs> = {}>(args?: Prisma.Subset<T, Prisma.BranchDefaultArgs<ExtArgs>>): Prisma.Prisma__BranchClient<runtime.Types.Result.GetResult<Prisma.$BranchPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions>;
    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): runtime.Types.Utils.JsPromise<TResult1 | TResult2>;
    catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): runtime.Types.Utils.JsPromise<T | TResult>;
    finally(onfinally?: (() => void) | undefined | null): runtime.Types.Utils.JsPromise<T>;
}
export interface UserBranchFieldRefs {
    readonly id: Prisma.FieldRef<"UserBranch", 'String'>;
    readonly userId: Prisma.FieldRef<"UserBranch", 'String'>;
    readonly branchId: Prisma.FieldRef<"UserBranch", 'String'>;
}
export type UserBranchFindUniqueArgs<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {
    select?: Prisma.UserBranchSelect<ExtArgs> | null;
    omit?: Prisma.UserBranchOmit<ExtArgs> | null;
    include?: Prisma.UserBranchInclude<ExtArgs> | null;
    where: Prisma.UserBranchWhereUniqueInput;
};
export type UserBranchFindUniqueOrThrowArgs<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {
    select?: Prisma.UserBranchSelect<ExtArgs> | null;
    omit?: Prisma.UserBranchOmit<ExtArgs> | null;
    include?: Prisma.UserBranchInclude<ExtArgs> | null;
    where: Prisma.UserBranchWhereUniqueInput;
};
export type UserBranchFindFirstArgs<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {
    select?: Prisma.UserBranchSelect<ExtArgs> | null;
    omit?: Prisma.UserBranchOmit<ExtArgs> | null;
    include?: Prisma.UserBranchInclude<ExtArgs> | null;
    where?: Prisma.UserBranchWhereInput;
    orderBy?: Prisma.UserBranchOrderByWithRelationInput | Prisma.UserBranchOrderByWithRelationInput[];
    cursor?: Prisma.UserBranchWhereUniqueInput;
    take?: number;
    skip?: number;
    distinct?: Prisma.UserBranchScalarFieldEnum | Prisma.UserBranchScalarFieldEnum[];
};
export type UserBranchFindFirstOrThrowArgs<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {
    select?: Prisma.UserBranchSelect<ExtArgs> | null;
    omit?: Prisma.UserBranchOmit<ExtArgs> | null;
    include?: Prisma.UserBranchInclude<ExtArgs> | null;
    where?: Prisma.UserBranchWhereInput;
    orderBy?: Prisma.UserBranchOrderByWithRelationInput | Prisma.UserBranchOrderByWithRelationInput[];
    cursor?: Prisma.UserBranchWhereUniqueInput;
    take?: number;
    skip?: number;
    distinct?: Prisma.UserBranchScalarFieldEnum | Prisma.UserBranchScalarFieldEnum[];
};
export type UserBranchFindManyArgs<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {
    select?: Prisma.UserBranchSelect<ExtArgs> | null;
    omit?: Prisma.UserBranchOmit<ExtArgs> | null;
    include?: Prisma.UserBranchInclude<ExtArgs> | null;
    where?: Prisma.UserBranchWhereInput;
    orderBy?: Prisma.UserBranchOrderByWithRelationInput | Prisma.UserBranchOrderByWithRelationInput[];
    cursor?: Prisma.UserBranchWhereUniqueInput;
    take?: number;
    skip?: number;
    distinct?: Prisma.UserBranchScalarFieldEnum | Prisma.UserBranchScalarFieldEnum[];
};
export type UserBranchCreateArgs<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {
    select?: Prisma.UserBranchSelect<ExtArgs> | null;
    omit?: Prisma.UserBranchOmit<ExtArgs> | null;
    include?: Prisma.UserBranchInclude<ExtArgs> | null;
    data: Prisma.XOR<Prisma.UserBranchCreateInput, Prisma.UserBranchUncheckedCreateInput>;
};
export type UserBranchCreateManyArgs<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {
    data: Prisma.UserBranchCreateManyInput | Prisma.UserBranchCreateManyInput[];
    skipDuplicates?: boolean;
};
export type UserBranchCreateManyAndReturnArgs<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {
    select?: Prisma.UserBranchSelectCreateManyAndReturn<ExtArgs> | null;
    omit?: Prisma.UserBranchOmit<ExtArgs> | null;
    data: Prisma.UserBranchCreateManyInput | Prisma.UserBranchCreateManyInput[];
    skipDuplicates?: boolean;
    include?: Prisma.UserBranchIncludeCreateManyAndReturn<ExtArgs> | null;
};
export type UserBranchUpdateArgs<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {
    select?: Prisma.UserBranchSelect<ExtArgs> | null;
    omit?: Prisma.UserBranchOmit<ExtArgs> | null;
    include?: Prisma.UserBranchInclude<ExtArgs> | null;
    data: Prisma.XOR<Prisma.UserBranchUpdateInput, Prisma.UserBranchUncheckedUpdateInput>;
    where: Prisma.UserBranchWhereUniqueInput;
};
export type UserBranchUpdateManyArgs<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {
    data: Prisma.XOR<Prisma.UserBranchUpdateManyMutationInput, Prisma.UserBranchUncheckedUpdateManyInput>;
    where?: Prisma.UserBranchWhereInput;
    limit?: number;
};
export type UserBranchUpdateManyAndReturnArgs<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {
    select?: Prisma.UserBranchSelectUpdateManyAndReturn<ExtArgs> | null;
    omit?: Prisma.UserBranchOmit<ExtArgs> | null;
    data: Prisma.XOR<Prisma.UserBranchUpdateManyMutationInput, Prisma.UserBranchUncheckedUpdateManyInput>;
    where?: Prisma.UserBranchWhereInput;
    limit?: number;
    include?: Prisma.UserBranchIncludeUpdateManyAndReturn<ExtArgs> | null;
};
export type UserBranchUpsertArgs<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {
    select?: Prisma.UserBranchSelect<ExtArgs> | null;
    omit?: Prisma.UserBranchOmit<ExtArgs> | null;
    include?: Prisma.UserBranchInclude<ExtArgs> | null;
    where: Prisma.UserBranchWhereUniqueInput;
    create: Prisma.XOR<Prisma.UserBranchCreateInput, Prisma.UserBranchUncheckedCreateInput>;
    update: Prisma.XOR<Prisma.UserBranchUpdateInput, Prisma.UserBranchUncheckedUpdateInput>;
};
export type UserBranchDeleteArgs<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {
    select?: Prisma.UserBranchSelect<ExtArgs> | null;
    omit?: Prisma.UserBranchOmit<ExtArgs> | null;
    include?: Prisma.UserBranchInclude<ExtArgs> | null;
    where: Prisma.UserBranchWhereUniqueInput;
};
export type UserBranchDeleteManyArgs<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {
    where?: Prisma.UserBranchWhereInput;
    limit?: number;
};
export type UserBranchDefaultArgs<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {
    select?: Prisma.UserBranchSelect<ExtArgs> | null;
    omit?: Prisma.UserBranchOmit<ExtArgs> | null;
    include?: Prisma.UserBranchInclude<ExtArgs> | null;
};
export {};
