import type * as runtime from "@prisma/client/runtime/client";
import type * as Prisma from "../internal/prismaNamespace.js";
export type PasswordSetupTokenModel = runtime.Types.Result.DefaultSelection<Prisma.$PasswordSetupTokenPayload>;
export type AggregatePasswordSetupToken = {
    _count: PasswordSetupTokenCountAggregateOutputType | null;
    _min: PasswordSetupTokenMinAggregateOutputType | null;
    _max: PasswordSetupTokenMaxAggregateOutputType | null;
};
export type PasswordSetupTokenMinAggregateOutputType = {
    id: string | null;
    userId: string | null;
    tokenHash: string | null;
    expiresAt: Date | null;
    usedAt: Date | null;
    createdAt: Date | null;
};
export type PasswordSetupTokenMaxAggregateOutputType = {
    id: string | null;
    userId: string | null;
    tokenHash: string | null;
    expiresAt: Date | null;
    usedAt: Date | null;
    createdAt: Date | null;
};
export type PasswordSetupTokenCountAggregateOutputType = {
    id: number;
    userId: number;
    tokenHash: number;
    expiresAt: number;
    usedAt: number;
    createdAt: number;
    _all: number;
};
export type PasswordSetupTokenMinAggregateInputType = {
    id?: true;
    userId?: true;
    tokenHash?: true;
    expiresAt?: true;
    usedAt?: true;
    createdAt?: true;
};
export type PasswordSetupTokenMaxAggregateInputType = {
    id?: true;
    userId?: true;
    tokenHash?: true;
    expiresAt?: true;
    usedAt?: true;
    createdAt?: true;
};
export type PasswordSetupTokenCountAggregateInputType = {
    id?: true;
    userId?: true;
    tokenHash?: true;
    expiresAt?: true;
    usedAt?: true;
    createdAt?: true;
    _all?: true;
};
export type PasswordSetupTokenAggregateArgs<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {
    where?: Prisma.PasswordSetupTokenWhereInput;
    orderBy?: Prisma.PasswordSetupTokenOrderByWithRelationInput | Prisma.PasswordSetupTokenOrderByWithRelationInput[];
    cursor?: Prisma.PasswordSetupTokenWhereUniqueInput;
    take?: number;
    skip?: number;
    _count?: true | PasswordSetupTokenCountAggregateInputType;
    _min?: PasswordSetupTokenMinAggregateInputType;
    _max?: PasswordSetupTokenMaxAggregateInputType;
};
export type GetPasswordSetupTokenAggregateType<T extends PasswordSetupTokenAggregateArgs> = {
    [P in keyof T & keyof AggregatePasswordSetupToken]: P extends '_count' | 'count' ? T[P] extends true ? number : Prisma.GetScalarType<T[P], AggregatePasswordSetupToken[P]> : Prisma.GetScalarType<T[P], AggregatePasswordSetupToken[P]>;
};
export type PasswordSetupTokenGroupByArgs<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {
    where?: Prisma.PasswordSetupTokenWhereInput;
    orderBy?: Prisma.PasswordSetupTokenOrderByWithAggregationInput | Prisma.PasswordSetupTokenOrderByWithAggregationInput[];
    by: Prisma.PasswordSetupTokenScalarFieldEnum[] | Prisma.PasswordSetupTokenScalarFieldEnum;
    having?: Prisma.PasswordSetupTokenScalarWhereWithAggregatesInput;
    take?: number;
    skip?: number;
    _count?: PasswordSetupTokenCountAggregateInputType | true;
    _min?: PasswordSetupTokenMinAggregateInputType;
    _max?: PasswordSetupTokenMaxAggregateInputType;
};
export type PasswordSetupTokenGroupByOutputType = {
    id: string;
    userId: string;
    tokenHash: string;
    expiresAt: Date;
    usedAt: Date | null;
    createdAt: Date;
    _count: PasswordSetupTokenCountAggregateOutputType | null;
    _min: PasswordSetupTokenMinAggregateOutputType | null;
    _max: PasswordSetupTokenMaxAggregateOutputType | null;
};
export type GetPasswordSetupTokenGroupByPayload<T extends PasswordSetupTokenGroupByArgs> = Prisma.PrismaPromise<Array<Prisma.PickEnumerable<PasswordSetupTokenGroupByOutputType, T['by']> & {
    [P in ((keyof T) & (keyof PasswordSetupTokenGroupByOutputType))]: P extends '_count' ? T[P] extends boolean ? number : Prisma.GetScalarType<T[P], PasswordSetupTokenGroupByOutputType[P]> : Prisma.GetScalarType<T[P], PasswordSetupTokenGroupByOutputType[P]>;
}>>;
export type PasswordSetupTokenWhereInput = {
    AND?: Prisma.PasswordSetupTokenWhereInput | Prisma.PasswordSetupTokenWhereInput[];
    OR?: Prisma.PasswordSetupTokenWhereInput[];
    NOT?: Prisma.PasswordSetupTokenWhereInput | Prisma.PasswordSetupTokenWhereInput[];
    id?: Prisma.StringFilter<"PasswordSetupToken"> | string;
    userId?: Prisma.StringFilter<"PasswordSetupToken"> | string;
    tokenHash?: Prisma.StringFilter<"PasswordSetupToken"> | string;
    expiresAt?: Prisma.DateTimeFilter<"PasswordSetupToken"> | Date | string;
    usedAt?: Prisma.DateTimeNullableFilter<"PasswordSetupToken"> | Date | string | null;
    createdAt?: Prisma.DateTimeFilter<"PasswordSetupToken"> | Date | string;
    user?: Prisma.XOR<Prisma.UserScalarRelationFilter, Prisma.UserWhereInput>;
};
export type PasswordSetupTokenOrderByWithRelationInput = {
    id?: Prisma.SortOrder;
    userId?: Prisma.SortOrder;
    tokenHash?: Prisma.SortOrder;
    expiresAt?: Prisma.SortOrder;
    usedAt?: Prisma.SortOrderInput | Prisma.SortOrder;
    createdAt?: Prisma.SortOrder;
    user?: Prisma.UserOrderByWithRelationInput;
};
export type PasswordSetupTokenWhereUniqueInput = Prisma.AtLeast<{
    id?: string;
    tokenHash?: string;
    AND?: Prisma.PasswordSetupTokenWhereInput | Prisma.PasswordSetupTokenWhereInput[];
    OR?: Prisma.PasswordSetupTokenWhereInput[];
    NOT?: Prisma.PasswordSetupTokenWhereInput | Prisma.PasswordSetupTokenWhereInput[];
    userId?: Prisma.StringFilter<"PasswordSetupToken"> | string;
    expiresAt?: Prisma.DateTimeFilter<"PasswordSetupToken"> | Date | string;
    usedAt?: Prisma.DateTimeNullableFilter<"PasswordSetupToken"> | Date | string | null;
    createdAt?: Prisma.DateTimeFilter<"PasswordSetupToken"> | Date | string;
    user?: Prisma.XOR<Prisma.UserScalarRelationFilter, Prisma.UserWhereInput>;
}, "id" | "tokenHash">;
export type PasswordSetupTokenOrderByWithAggregationInput = {
    id?: Prisma.SortOrder;
    userId?: Prisma.SortOrder;
    tokenHash?: Prisma.SortOrder;
    expiresAt?: Prisma.SortOrder;
    usedAt?: Prisma.SortOrderInput | Prisma.SortOrder;
    createdAt?: Prisma.SortOrder;
    _count?: Prisma.PasswordSetupTokenCountOrderByAggregateInput;
    _max?: Prisma.PasswordSetupTokenMaxOrderByAggregateInput;
    _min?: Prisma.PasswordSetupTokenMinOrderByAggregateInput;
};
export type PasswordSetupTokenScalarWhereWithAggregatesInput = {
    AND?: Prisma.PasswordSetupTokenScalarWhereWithAggregatesInput | Prisma.PasswordSetupTokenScalarWhereWithAggregatesInput[];
    OR?: Prisma.PasswordSetupTokenScalarWhereWithAggregatesInput[];
    NOT?: Prisma.PasswordSetupTokenScalarWhereWithAggregatesInput | Prisma.PasswordSetupTokenScalarWhereWithAggregatesInput[];
    id?: Prisma.StringWithAggregatesFilter<"PasswordSetupToken"> | string;
    userId?: Prisma.StringWithAggregatesFilter<"PasswordSetupToken"> | string;
    tokenHash?: Prisma.StringWithAggregatesFilter<"PasswordSetupToken"> | string;
    expiresAt?: Prisma.DateTimeWithAggregatesFilter<"PasswordSetupToken"> | Date | string;
    usedAt?: Prisma.DateTimeNullableWithAggregatesFilter<"PasswordSetupToken"> | Date | string | null;
    createdAt?: Prisma.DateTimeWithAggregatesFilter<"PasswordSetupToken"> | Date | string;
};
export type PasswordSetupTokenCreateInput = {
    id?: string;
    tokenHash: string;
    expiresAt: Date | string;
    usedAt?: Date | string | null;
    createdAt?: Date | string;
    user: Prisma.UserCreateNestedOneWithoutPasswordSetupTokensInput;
};
export type PasswordSetupTokenUncheckedCreateInput = {
    id?: string;
    userId: string;
    tokenHash: string;
    expiresAt: Date | string;
    usedAt?: Date | string | null;
    createdAt?: Date | string;
};
export type PasswordSetupTokenUpdateInput = {
    id?: Prisma.StringFieldUpdateOperationsInput | string;
    tokenHash?: Prisma.StringFieldUpdateOperationsInput | string;
    expiresAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string;
    usedAt?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null;
    createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string;
    user?: Prisma.UserUpdateOneRequiredWithoutPasswordSetupTokensNestedInput;
};
export type PasswordSetupTokenUncheckedUpdateInput = {
    id?: Prisma.StringFieldUpdateOperationsInput | string;
    userId?: Prisma.StringFieldUpdateOperationsInput | string;
    tokenHash?: Prisma.StringFieldUpdateOperationsInput | string;
    expiresAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string;
    usedAt?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null;
    createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string;
};
export type PasswordSetupTokenCreateManyInput = {
    id?: string;
    userId: string;
    tokenHash: string;
    expiresAt: Date | string;
    usedAt?: Date | string | null;
    createdAt?: Date | string;
};
export type PasswordSetupTokenUpdateManyMutationInput = {
    id?: Prisma.StringFieldUpdateOperationsInput | string;
    tokenHash?: Prisma.StringFieldUpdateOperationsInput | string;
    expiresAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string;
    usedAt?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null;
    createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string;
};
export type PasswordSetupTokenUncheckedUpdateManyInput = {
    id?: Prisma.StringFieldUpdateOperationsInput | string;
    userId?: Prisma.StringFieldUpdateOperationsInput | string;
    tokenHash?: Prisma.StringFieldUpdateOperationsInput | string;
    expiresAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string;
    usedAt?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null;
    createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string;
};
export type PasswordSetupTokenListRelationFilter = {
    every?: Prisma.PasswordSetupTokenWhereInput;
    some?: Prisma.PasswordSetupTokenWhereInput;
    none?: Prisma.PasswordSetupTokenWhereInput;
};
export type PasswordSetupTokenOrderByRelationAggregateInput = {
    _count?: Prisma.SortOrder;
};
export type PasswordSetupTokenCountOrderByAggregateInput = {
    id?: Prisma.SortOrder;
    userId?: Prisma.SortOrder;
    tokenHash?: Prisma.SortOrder;
    expiresAt?: Prisma.SortOrder;
    usedAt?: Prisma.SortOrder;
    createdAt?: Prisma.SortOrder;
};
export type PasswordSetupTokenMaxOrderByAggregateInput = {
    id?: Prisma.SortOrder;
    userId?: Prisma.SortOrder;
    tokenHash?: Prisma.SortOrder;
    expiresAt?: Prisma.SortOrder;
    usedAt?: Prisma.SortOrder;
    createdAt?: Prisma.SortOrder;
};
export type PasswordSetupTokenMinOrderByAggregateInput = {
    id?: Prisma.SortOrder;
    userId?: Prisma.SortOrder;
    tokenHash?: Prisma.SortOrder;
    expiresAt?: Prisma.SortOrder;
    usedAt?: Prisma.SortOrder;
    createdAt?: Prisma.SortOrder;
};
export type PasswordSetupTokenCreateNestedManyWithoutUserInput = {
    create?: Prisma.XOR<Prisma.PasswordSetupTokenCreateWithoutUserInput, Prisma.PasswordSetupTokenUncheckedCreateWithoutUserInput> | Prisma.PasswordSetupTokenCreateWithoutUserInput[] | Prisma.PasswordSetupTokenUncheckedCreateWithoutUserInput[];
    connectOrCreate?: Prisma.PasswordSetupTokenCreateOrConnectWithoutUserInput | Prisma.PasswordSetupTokenCreateOrConnectWithoutUserInput[];
    createMany?: Prisma.PasswordSetupTokenCreateManyUserInputEnvelope;
    connect?: Prisma.PasswordSetupTokenWhereUniqueInput | Prisma.PasswordSetupTokenWhereUniqueInput[];
};
export type PasswordSetupTokenUncheckedCreateNestedManyWithoutUserInput = {
    create?: Prisma.XOR<Prisma.PasswordSetupTokenCreateWithoutUserInput, Prisma.PasswordSetupTokenUncheckedCreateWithoutUserInput> | Prisma.PasswordSetupTokenCreateWithoutUserInput[] | Prisma.PasswordSetupTokenUncheckedCreateWithoutUserInput[];
    connectOrCreate?: Prisma.PasswordSetupTokenCreateOrConnectWithoutUserInput | Prisma.PasswordSetupTokenCreateOrConnectWithoutUserInput[];
    createMany?: Prisma.PasswordSetupTokenCreateManyUserInputEnvelope;
    connect?: Prisma.PasswordSetupTokenWhereUniqueInput | Prisma.PasswordSetupTokenWhereUniqueInput[];
};
export type PasswordSetupTokenUpdateManyWithoutUserNestedInput = {
    create?: Prisma.XOR<Prisma.PasswordSetupTokenCreateWithoutUserInput, Prisma.PasswordSetupTokenUncheckedCreateWithoutUserInput> | Prisma.PasswordSetupTokenCreateWithoutUserInput[] | Prisma.PasswordSetupTokenUncheckedCreateWithoutUserInput[];
    connectOrCreate?: Prisma.PasswordSetupTokenCreateOrConnectWithoutUserInput | Prisma.PasswordSetupTokenCreateOrConnectWithoutUserInput[];
    upsert?: Prisma.PasswordSetupTokenUpsertWithWhereUniqueWithoutUserInput | Prisma.PasswordSetupTokenUpsertWithWhereUniqueWithoutUserInput[];
    createMany?: Prisma.PasswordSetupTokenCreateManyUserInputEnvelope;
    set?: Prisma.PasswordSetupTokenWhereUniqueInput | Prisma.PasswordSetupTokenWhereUniqueInput[];
    disconnect?: Prisma.PasswordSetupTokenWhereUniqueInput | Prisma.PasswordSetupTokenWhereUniqueInput[];
    delete?: Prisma.PasswordSetupTokenWhereUniqueInput | Prisma.PasswordSetupTokenWhereUniqueInput[];
    connect?: Prisma.PasswordSetupTokenWhereUniqueInput | Prisma.PasswordSetupTokenWhereUniqueInput[];
    update?: Prisma.PasswordSetupTokenUpdateWithWhereUniqueWithoutUserInput | Prisma.PasswordSetupTokenUpdateWithWhereUniqueWithoutUserInput[];
    updateMany?: Prisma.PasswordSetupTokenUpdateManyWithWhereWithoutUserInput | Prisma.PasswordSetupTokenUpdateManyWithWhereWithoutUserInput[];
    deleteMany?: Prisma.PasswordSetupTokenScalarWhereInput | Prisma.PasswordSetupTokenScalarWhereInput[];
};
export type PasswordSetupTokenUncheckedUpdateManyWithoutUserNestedInput = {
    create?: Prisma.XOR<Prisma.PasswordSetupTokenCreateWithoutUserInput, Prisma.PasswordSetupTokenUncheckedCreateWithoutUserInput> | Prisma.PasswordSetupTokenCreateWithoutUserInput[] | Prisma.PasswordSetupTokenUncheckedCreateWithoutUserInput[];
    connectOrCreate?: Prisma.PasswordSetupTokenCreateOrConnectWithoutUserInput | Prisma.PasswordSetupTokenCreateOrConnectWithoutUserInput[];
    upsert?: Prisma.PasswordSetupTokenUpsertWithWhereUniqueWithoutUserInput | Prisma.PasswordSetupTokenUpsertWithWhereUniqueWithoutUserInput[];
    createMany?: Prisma.PasswordSetupTokenCreateManyUserInputEnvelope;
    set?: Prisma.PasswordSetupTokenWhereUniqueInput | Prisma.PasswordSetupTokenWhereUniqueInput[];
    disconnect?: Prisma.PasswordSetupTokenWhereUniqueInput | Prisma.PasswordSetupTokenWhereUniqueInput[];
    delete?: Prisma.PasswordSetupTokenWhereUniqueInput | Prisma.PasswordSetupTokenWhereUniqueInput[];
    connect?: Prisma.PasswordSetupTokenWhereUniqueInput | Prisma.PasswordSetupTokenWhereUniqueInput[];
    update?: Prisma.PasswordSetupTokenUpdateWithWhereUniqueWithoutUserInput | Prisma.PasswordSetupTokenUpdateWithWhereUniqueWithoutUserInput[];
    updateMany?: Prisma.PasswordSetupTokenUpdateManyWithWhereWithoutUserInput | Prisma.PasswordSetupTokenUpdateManyWithWhereWithoutUserInput[];
    deleteMany?: Prisma.PasswordSetupTokenScalarWhereInput | Prisma.PasswordSetupTokenScalarWhereInput[];
};
export type NullableDateTimeFieldUpdateOperationsInput = {
    set?: Date | string | null;
};
export type PasswordSetupTokenCreateWithoutUserInput = {
    id?: string;
    tokenHash: string;
    expiresAt: Date | string;
    usedAt?: Date | string | null;
    createdAt?: Date | string;
};
export type PasswordSetupTokenUncheckedCreateWithoutUserInput = {
    id?: string;
    tokenHash: string;
    expiresAt: Date | string;
    usedAt?: Date | string | null;
    createdAt?: Date | string;
};
export type PasswordSetupTokenCreateOrConnectWithoutUserInput = {
    where: Prisma.PasswordSetupTokenWhereUniqueInput;
    create: Prisma.XOR<Prisma.PasswordSetupTokenCreateWithoutUserInput, Prisma.PasswordSetupTokenUncheckedCreateWithoutUserInput>;
};
export type PasswordSetupTokenCreateManyUserInputEnvelope = {
    data: Prisma.PasswordSetupTokenCreateManyUserInput | Prisma.PasswordSetupTokenCreateManyUserInput[];
    skipDuplicates?: boolean;
};
export type PasswordSetupTokenUpsertWithWhereUniqueWithoutUserInput = {
    where: Prisma.PasswordSetupTokenWhereUniqueInput;
    update: Prisma.XOR<Prisma.PasswordSetupTokenUpdateWithoutUserInput, Prisma.PasswordSetupTokenUncheckedUpdateWithoutUserInput>;
    create: Prisma.XOR<Prisma.PasswordSetupTokenCreateWithoutUserInput, Prisma.PasswordSetupTokenUncheckedCreateWithoutUserInput>;
};
export type PasswordSetupTokenUpdateWithWhereUniqueWithoutUserInput = {
    where: Prisma.PasswordSetupTokenWhereUniqueInput;
    data: Prisma.XOR<Prisma.PasswordSetupTokenUpdateWithoutUserInput, Prisma.PasswordSetupTokenUncheckedUpdateWithoutUserInput>;
};
export type PasswordSetupTokenUpdateManyWithWhereWithoutUserInput = {
    where: Prisma.PasswordSetupTokenScalarWhereInput;
    data: Prisma.XOR<Prisma.PasswordSetupTokenUpdateManyMutationInput, Prisma.PasswordSetupTokenUncheckedUpdateManyWithoutUserInput>;
};
export type PasswordSetupTokenScalarWhereInput = {
    AND?: Prisma.PasswordSetupTokenScalarWhereInput | Prisma.PasswordSetupTokenScalarWhereInput[];
    OR?: Prisma.PasswordSetupTokenScalarWhereInput[];
    NOT?: Prisma.PasswordSetupTokenScalarWhereInput | Prisma.PasswordSetupTokenScalarWhereInput[];
    id?: Prisma.StringFilter<"PasswordSetupToken"> | string;
    userId?: Prisma.StringFilter<"PasswordSetupToken"> | string;
    tokenHash?: Prisma.StringFilter<"PasswordSetupToken"> | string;
    expiresAt?: Prisma.DateTimeFilter<"PasswordSetupToken"> | Date | string;
    usedAt?: Prisma.DateTimeNullableFilter<"PasswordSetupToken"> | Date | string | null;
    createdAt?: Prisma.DateTimeFilter<"PasswordSetupToken"> | Date | string;
};
export type PasswordSetupTokenCreateManyUserInput = {
    id?: string;
    tokenHash: string;
    expiresAt: Date | string;
    usedAt?: Date | string | null;
    createdAt?: Date | string;
};
export type PasswordSetupTokenUpdateWithoutUserInput = {
    id?: Prisma.StringFieldUpdateOperationsInput | string;
    tokenHash?: Prisma.StringFieldUpdateOperationsInput | string;
    expiresAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string;
    usedAt?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null;
    createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string;
};
export type PasswordSetupTokenUncheckedUpdateWithoutUserInput = {
    id?: Prisma.StringFieldUpdateOperationsInput | string;
    tokenHash?: Prisma.StringFieldUpdateOperationsInput | string;
    expiresAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string;
    usedAt?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null;
    createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string;
};
export type PasswordSetupTokenUncheckedUpdateManyWithoutUserInput = {
    id?: Prisma.StringFieldUpdateOperationsInput | string;
    tokenHash?: Prisma.StringFieldUpdateOperationsInput | string;
    expiresAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string;
    usedAt?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null;
    createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string;
};
export type PasswordSetupTokenSelect<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = runtime.Types.Extensions.GetSelect<{
    id?: boolean;
    userId?: boolean;
    tokenHash?: boolean;
    expiresAt?: boolean;
    usedAt?: boolean;
    createdAt?: boolean;
    user?: boolean | Prisma.UserDefaultArgs<ExtArgs>;
}, ExtArgs["result"]["passwordSetupToken"]>;
export type PasswordSetupTokenSelectCreateManyAndReturn<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = runtime.Types.Extensions.GetSelect<{
    id?: boolean;
    userId?: boolean;
    tokenHash?: boolean;
    expiresAt?: boolean;
    usedAt?: boolean;
    createdAt?: boolean;
    user?: boolean | Prisma.UserDefaultArgs<ExtArgs>;
}, ExtArgs["result"]["passwordSetupToken"]>;
export type PasswordSetupTokenSelectUpdateManyAndReturn<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = runtime.Types.Extensions.GetSelect<{
    id?: boolean;
    userId?: boolean;
    tokenHash?: boolean;
    expiresAt?: boolean;
    usedAt?: boolean;
    createdAt?: boolean;
    user?: boolean | Prisma.UserDefaultArgs<ExtArgs>;
}, ExtArgs["result"]["passwordSetupToken"]>;
export type PasswordSetupTokenSelectScalar = {
    id?: boolean;
    userId?: boolean;
    tokenHash?: boolean;
    expiresAt?: boolean;
    usedAt?: boolean;
    createdAt?: boolean;
};
export type PasswordSetupTokenOmit<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = runtime.Types.Extensions.GetOmit<"id" | "userId" | "tokenHash" | "expiresAt" | "usedAt" | "createdAt", ExtArgs["result"]["passwordSetupToken"]>;
export type PasswordSetupTokenInclude<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {
    user?: boolean | Prisma.UserDefaultArgs<ExtArgs>;
};
export type PasswordSetupTokenIncludeCreateManyAndReturn<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {
    user?: boolean | Prisma.UserDefaultArgs<ExtArgs>;
};
export type PasswordSetupTokenIncludeUpdateManyAndReturn<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {
    user?: boolean | Prisma.UserDefaultArgs<ExtArgs>;
};
export type $PasswordSetupTokenPayload<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {
    name: "PasswordSetupToken";
    objects: {
        user: Prisma.$UserPayload<ExtArgs>;
    };
    scalars: runtime.Types.Extensions.GetPayloadResult<{
        id: string;
        userId: string;
        tokenHash: string;
        expiresAt: Date;
        usedAt: Date | null;
        createdAt: Date;
    }, ExtArgs["result"]["passwordSetupToken"]>;
    composites: {};
};
export type PasswordSetupTokenGetPayload<S extends boolean | null | undefined | PasswordSetupTokenDefaultArgs> = runtime.Types.Result.GetResult<Prisma.$PasswordSetupTokenPayload, S>;
export type PasswordSetupTokenCountArgs<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = Omit<PasswordSetupTokenFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
    select?: PasswordSetupTokenCountAggregateInputType | true;
};
export interface PasswordSetupTokenDelegate<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs, GlobalOmitOptions = {}> {
    [K: symbol]: {
        types: Prisma.TypeMap<ExtArgs>['model']['PasswordSetupToken'];
        meta: {
            name: 'PasswordSetupToken';
        };
    };
    findUnique<T extends PasswordSetupTokenFindUniqueArgs>(args: Prisma.SelectSubset<T, PasswordSetupTokenFindUniqueArgs<ExtArgs>>): Prisma.Prisma__PasswordSetupTokenClient<runtime.Types.Result.GetResult<Prisma.$PasswordSetupTokenPayload<ExtArgs>, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>;
    findUniqueOrThrow<T extends PasswordSetupTokenFindUniqueOrThrowArgs>(args: Prisma.SelectSubset<T, PasswordSetupTokenFindUniqueOrThrowArgs<ExtArgs>>): Prisma.Prisma__PasswordSetupTokenClient<runtime.Types.Result.GetResult<Prisma.$PasswordSetupTokenPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>;
    findFirst<T extends PasswordSetupTokenFindFirstArgs>(args?: Prisma.SelectSubset<T, PasswordSetupTokenFindFirstArgs<ExtArgs>>): Prisma.Prisma__PasswordSetupTokenClient<runtime.Types.Result.GetResult<Prisma.$PasswordSetupTokenPayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>;
    findFirstOrThrow<T extends PasswordSetupTokenFindFirstOrThrowArgs>(args?: Prisma.SelectSubset<T, PasswordSetupTokenFindFirstOrThrowArgs<ExtArgs>>): Prisma.Prisma__PasswordSetupTokenClient<runtime.Types.Result.GetResult<Prisma.$PasswordSetupTokenPayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>;
    findMany<T extends PasswordSetupTokenFindManyArgs>(args?: Prisma.SelectSubset<T, PasswordSetupTokenFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<runtime.Types.Result.GetResult<Prisma.$PasswordSetupTokenPayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>;
    create<T extends PasswordSetupTokenCreateArgs>(args: Prisma.SelectSubset<T, PasswordSetupTokenCreateArgs<ExtArgs>>): Prisma.Prisma__PasswordSetupTokenClient<runtime.Types.Result.GetResult<Prisma.$PasswordSetupTokenPayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>;
    createMany<T extends PasswordSetupTokenCreateManyArgs>(args?: Prisma.SelectSubset<T, PasswordSetupTokenCreateManyArgs<ExtArgs>>): Prisma.PrismaPromise<Prisma.BatchPayload>;
    createManyAndReturn<T extends PasswordSetupTokenCreateManyAndReturnArgs>(args?: Prisma.SelectSubset<T, PasswordSetupTokenCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<runtime.Types.Result.GetResult<Prisma.$PasswordSetupTokenPayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>;
    delete<T extends PasswordSetupTokenDeleteArgs>(args: Prisma.SelectSubset<T, PasswordSetupTokenDeleteArgs<ExtArgs>>): Prisma.Prisma__PasswordSetupTokenClient<runtime.Types.Result.GetResult<Prisma.$PasswordSetupTokenPayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>;
    update<T extends PasswordSetupTokenUpdateArgs>(args: Prisma.SelectSubset<T, PasswordSetupTokenUpdateArgs<ExtArgs>>): Prisma.Prisma__PasswordSetupTokenClient<runtime.Types.Result.GetResult<Prisma.$PasswordSetupTokenPayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>;
    deleteMany<T extends PasswordSetupTokenDeleteManyArgs>(args?: Prisma.SelectSubset<T, PasswordSetupTokenDeleteManyArgs<ExtArgs>>): Prisma.PrismaPromise<Prisma.BatchPayload>;
    updateMany<T extends PasswordSetupTokenUpdateManyArgs>(args: Prisma.SelectSubset<T, PasswordSetupTokenUpdateManyArgs<ExtArgs>>): Prisma.PrismaPromise<Prisma.BatchPayload>;
    updateManyAndReturn<T extends PasswordSetupTokenUpdateManyAndReturnArgs>(args: Prisma.SelectSubset<T, PasswordSetupTokenUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<runtime.Types.Result.GetResult<Prisma.$PasswordSetupTokenPayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>;
    upsert<T extends PasswordSetupTokenUpsertArgs>(args: Prisma.SelectSubset<T, PasswordSetupTokenUpsertArgs<ExtArgs>>): Prisma.Prisma__PasswordSetupTokenClient<runtime.Types.Result.GetResult<Prisma.$PasswordSetupTokenPayload<ExtArgs>, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>;
    count<T extends PasswordSetupTokenCountArgs>(args?: Prisma.Subset<T, PasswordSetupTokenCountArgs>): Prisma.PrismaPromise<T extends runtime.Types.Utils.Record<'select', any> ? T['select'] extends true ? number : Prisma.GetScalarType<T['select'], PasswordSetupTokenCountAggregateOutputType> : number>;
    aggregate<T extends PasswordSetupTokenAggregateArgs>(args: Prisma.Subset<T, PasswordSetupTokenAggregateArgs>): Prisma.PrismaPromise<GetPasswordSetupTokenAggregateType<T>>;
    groupBy<T extends PasswordSetupTokenGroupByArgs, HasSelectOrTake extends Prisma.Or<Prisma.Extends<'skip', Prisma.Keys<T>>, Prisma.Extends<'take', Prisma.Keys<T>>>, OrderByArg extends Prisma.True extends HasSelectOrTake ? {
        orderBy: PasswordSetupTokenGroupByArgs['orderBy'];
    } : {
        orderBy?: PasswordSetupTokenGroupByArgs['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, PasswordSetupTokenGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetPasswordSetupTokenGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>;
    readonly fields: PasswordSetupTokenFieldRefs;
}
export interface Prisma__PasswordSetupTokenClient<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>;
    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 PasswordSetupTokenFieldRefs {
    readonly id: Prisma.FieldRef<"PasswordSetupToken", 'String'>;
    readonly userId: Prisma.FieldRef<"PasswordSetupToken", 'String'>;
    readonly tokenHash: Prisma.FieldRef<"PasswordSetupToken", 'String'>;
    readonly expiresAt: Prisma.FieldRef<"PasswordSetupToken", 'DateTime'>;
    readonly usedAt: Prisma.FieldRef<"PasswordSetupToken", 'DateTime'>;
    readonly createdAt: Prisma.FieldRef<"PasswordSetupToken", 'DateTime'>;
}
export type PasswordSetupTokenFindUniqueArgs<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {
    select?: Prisma.PasswordSetupTokenSelect<ExtArgs> | null;
    omit?: Prisma.PasswordSetupTokenOmit<ExtArgs> | null;
    include?: Prisma.PasswordSetupTokenInclude<ExtArgs> | null;
    where: Prisma.PasswordSetupTokenWhereUniqueInput;
};
export type PasswordSetupTokenFindUniqueOrThrowArgs<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {
    select?: Prisma.PasswordSetupTokenSelect<ExtArgs> | null;
    omit?: Prisma.PasswordSetupTokenOmit<ExtArgs> | null;
    include?: Prisma.PasswordSetupTokenInclude<ExtArgs> | null;
    where: Prisma.PasswordSetupTokenWhereUniqueInput;
};
export type PasswordSetupTokenFindFirstArgs<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {
    select?: Prisma.PasswordSetupTokenSelect<ExtArgs> | null;
    omit?: Prisma.PasswordSetupTokenOmit<ExtArgs> | null;
    include?: Prisma.PasswordSetupTokenInclude<ExtArgs> | null;
    where?: Prisma.PasswordSetupTokenWhereInput;
    orderBy?: Prisma.PasswordSetupTokenOrderByWithRelationInput | Prisma.PasswordSetupTokenOrderByWithRelationInput[];
    cursor?: Prisma.PasswordSetupTokenWhereUniqueInput;
    take?: number;
    skip?: number;
    distinct?: Prisma.PasswordSetupTokenScalarFieldEnum | Prisma.PasswordSetupTokenScalarFieldEnum[];
};
export type PasswordSetupTokenFindFirstOrThrowArgs<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {
    select?: Prisma.PasswordSetupTokenSelect<ExtArgs> | null;
    omit?: Prisma.PasswordSetupTokenOmit<ExtArgs> | null;
    include?: Prisma.PasswordSetupTokenInclude<ExtArgs> | null;
    where?: Prisma.PasswordSetupTokenWhereInput;
    orderBy?: Prisma.PasswordSetupTokenOrderByWithRelationInput | Prisma.PasswordSetupTokenOrderByWithRelationInput[];
    cursor?: Prisma.PasswordSetupTokenWhereUniqueInput;
    take?: number;
    skip?: number;
    distinct?: Prisma.PasswordSetupTokenScalarFieldEnum | Prisma.PasswordSetupTokenScalarFieldEnum[];
};
export type PasswordSetupTokenFindManyArgs<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {
    select?: Prisma.PasswordSetupTokenSelect<ExtArgs> | null;
    omit?: Prisma.PasswordSetupTokenOmit<ExtArgs> | null;
    include?: Prisma.PasswordSetupTokenInclude<ExtArgs> | null;
    where?: Prisma.PasswordSetupTokenWhereInput;
    orderBy?: Prisma.PasswordSetupTokenOrderByWithRelationInput | Prisma.PasswordSetupTokenOrderByWithRelationInput[];
    cursor?: Prisma.PasswordSetupTokenWhereUniqueInput;
    take?: number;
    skip?: number;
    distinct?: Prisma.PasswordSetupTokenScalarFieldEnum | Prisma.PasswordSetupTokenScalarFieldEnum[];
};
export type PasswordSetupTokenCreateArgs<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {
    select?: Prisma.PasswordSetupTokenSelect<ExtArgs> | null;
    omit?: Prisma.PasswordSetupTokenOmit<ExtArgs> | null;
    include?: Prisma.PasswordSetupTokenInclude<ExtArgs> | null;
    data: Prisma.XOR<Prisma.PasswordSetupTokenCreateInput, Prisma.PasswordSetupTokenUncheckedCreateInput>;
};
export type PasswordSetupTokenCreateManyArgs<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {
    data: Prisma.PasswordSetupTokenCreateManyInput | Prisma.PasswordSetupTokenCreateManyInput[];
    skipDuplicates?: boolean;
};
export type PasswordSetupTokenCreateManyAndReturnArgs<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {
    select?: Prisma.PasswordSetupTokenSelectCreateManyAndReturn<ExtArgs> | null;
    omit?: Prisma.PasswordSetupTokenOmit<ExtArgs> | null;
    data: Prisma.PasswordSetupTokenCreateManyInput | Prisma.PasswordSetupTokenCreateManyInput[];
    skipDuplicates?: boolean;
    include?: Prisma.PasswordSetupTokenIncludeCreateManyAndReturn<ExtArgs> | null;
};
export type PasswordSetupTokenUpdateArgs<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {
    select?: Prisma.PasswordSetupTokenSelect<ExtArgs> | null;
    omit?: Prisma.PasswordSetupTokenOmit<ExtArgs> | null;
    include?: Prisma.PasswordSetupTokenInclude<ExtArgs> | null;
    data: Prisma.XOR<Prisma.PasswordSetupTokenUpdateInput, Prisma.PasswordSetupTokenUncheckedUpdateInput>;
    where: Prisma.PasswordSetupTokenWhereUniqueInput;
};
export type PasswordSetupTokenUpdateManyArgs<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {
    data: Prisma.XOR<Prisma.PasswordSetupTokenUpdateManyMutationInput, Prisma.PasswordSetupTokenUncheckedUpdateManyInput>;
    where?: Prisma.PasswordSetupTokenWhereInput;
    limit?: number;
};
export type PasswordSetupTokenUpdateManyAndReturnArgs<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {
    select?: Prisma.PasswordSetupTokenSelectUpdateManyAndReturn<ExtArgs> | null;
    omit?: Prisma.PasswordSetupTokenOmit<ExtArgs> | null;
    data: Prisma.XOR<Prisma.PasswordSetupTokenUpdateManyMutationInput, Prisma.PasswordSetupTokenUncheckedUpdateManyInput>;
    where?: Prisma.PasswordSetupTokenWhereInput;
    limit?: number;
    include?: Prisma.PasswordSetupTokenIncludeUpdateManyAndReturn<ExtArgs> | null;
};
export type PasswordSetupTokenUpsertArgs<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {
    select?: Prisma.PasswordSetupTokenSelect<ExtArgs> | null;
    omit?: Prisma.PasswordSetupTokenOmit<ExtArgs> | null;
    include?: Prisma.PasswordSetupTokenInclude<ExtArgs> | null;
    where: Prisma.PasswordSetupTokenWhereUniqueInput;
    create: Prisma.XOR<Prisma.PasswordSetupTokenCreateInput, Prisma.PasswordSetupTokenUncheckedCreateInput>;
    update: Prisma.XOR<Prisma.PasswordSetupTokenUpdateInput, Prisma.PasswordSetupTokenUncheckedUpdateInput>;
};
export type PasswordSetupTokenDeleteArgs<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {
    select?: Prisma.PasswordSetupTokenSelect<ExtArgs> | null;
    omit?: Prisma.PasswordSetupTokenOmit<ExtArgs> | null;
    include?: Prisma.PasswordSetupTokenInclude<ExtArgs> | null;
    where: Prisma.PasswordSetupTokenWhereUniqueInput;
};
export type PasswordSetupTokenDeleteManyArgs<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {
    where?: Prisma.PasswordSetupTokenWhereInput;
    limit?: number;
};
export type PasswordSetupTokenDefaultArgs<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {
    select?: Prisma.PasswordSetupTokenSelect<ExtArgs> | null;
    omit?: Prisma.PasswordSetupTokenOmit<ExtArgs> | null;
    include?: Prisma.PasswordSetupTokenInclude<ExtArgs> | null;
};
