import type * as runtime from "@prisma/client/runtime/client";
import type * as Prisma from "../internal/prismaNamespace";
export type PaymentModel = runtime.Types.Result.DefaultSelection<Prisma.$PaymentPayload>;
export type AggregatePayment = {
    _count: PaymentCountAggregateOutputType | null;
    _avg: PaymentAvgAggregateOutputType | null;
    _sum: PaymentSumAggregateOutputType | null;
    _min: PaymentMinAggregateOutputType | null;
    _max: PaymentMaxAggregateOutputType | null;
};
export type PaymentAvgAggregateOutputType = {
    size: number | null;
};
export type PaymentSumAggregateOutputType = {
    size: number | null;
};
export type PaymentMinAggregateOutputType = {
    id: string | null;
    transactionId: string | null;
    transferBy: string | null;
    transferDate: Date | null;
    proofUrl: string | null;
    filename: string | null;
    mimetype: string | null;
    size: number | null;
    createdAt: Date | null;
};
export type PaymentMaxAggregateOutputType = {
    id: string | null;
    transactionId: string | null;
    transferBy: string | null;
    transferDate: Date | null;
    proofUrl: string | null;
    filename: string | null;
    mimetype: string | null;
    size: number | null;
    createdAt: Date | null;
};
export type PaymentCountAggregateOutputType = {
    id: number;
    transactionId: number;
    transferBy: number;
    transferDate: number;
    proofUrl: number;
    filename: number;
    mimetype: number;
    size: number;
    createdAt: number;
    _all: number;
};
export type PaymentAvgAggregateInputType = {
    size?: true;
};
export type PaymentSumAggregateInputType = {
    size?: true;
};
export type PaymentMinAggregateInputType = {
    id?: true;
    transactionId?: true;
    transferBy?: true;
    transferDate?: true;
    proofUrl?: true;
    filename?: true;
    mimetype?: true;
    size?: true;
    createdAt?: true;
};
export type PaymentMaxAggregateInputType = {
    id?: true;
    transactionId?: true;
    transferBy?: true;
    transferDate?: true;
    proofUrl?: true;
    filename?: true;
    mimetype?: true;
    size?: true;
    createdAt?: true;
};
export type PaymentCountAggregateInputType = {
    id?: true;
    transactionId?: true;
    transferBy?: true;
    transferDate?: true;
    proofUrl?: true;
    filename?: true;
    mimetype?: true;
    size?: true;
    createdAt?: true;
    _all?: true;
};
export type PaymentAggregateArgs<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {
    where?: Prisma.PaymentWhereInput;
    orderBy?: Prisma.PaymentOrderByWithRelationInput | Prisma.PaymentOrderByWithRelationInput[];
    cursor?: Prisma.PaymentWhereUniqueInput;
    take?: number;
    skip?: number;
    _count?: true | PaymentCountAggregateInputType;
    _avg?: PaymentAvgAggregateInputType;
    _sum?: PaymentSumAggregateInputType;
    _min?: PaymentMinAggregateInputType;
    _max?: PaymentMaxAggregateInputType;
};
export type GetPaymentAggregateType<T extends PaymentAggregateArgs> = {
    [P in keyof T & keyof AggregatePayment]: P extends '_count' | 'count' ? T[P] extends true ? number : Prisma.GetScalarType<T[P], AggregatePayment[P]> : Prisma.GetScalarType<T[P], AggregatePayment[P]>;
};
export type PaymentGroupByArgs<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {
    where?: Prisma.PaymentWhereInput;
    orderBy?: Prisma.PaymentOrderByWithAggregationInput | Prisma.PaymentOrderByWithAggregationInput[];
    by: Prisma.PaymentScalarFieldEnum[] | Prisma.PaymentScalarFieldEnum;
    having?: Prisma.PaymentScalarWhereWithAggregatesInput;
    take?: number;
    skip?: number;
    _count?: PaymentCountAggregateInputType | true;
    _avg?: PaymentAvgAggregateInputType;
    _sum?: PaymentSumAggregateInputType;
    _min?: PaymentMinAggregateInputType;
    _max?: PaymentMaxAggregateInputType;
};
export type PaymentGroupByOutputType = {
    id: string;
    transactionId: string;
    transferBy: string;
    transferDate: Date;
    proofUrl: string;
    filename: string;
    mimetype: string;
    size: number;
    createdAt: Date;
    _count: PaymentCountAggregateOutputType | null;
    _avg: PaymentAvgAggregateOutputType | null;
    _sum: PaymentSumAggregateOutputType | null;
    _min: PaymentMinAggregateOutputType | null;
    _max: PaymentMaxAggregateOutputType | null;
};
type GetPaymentGroupByPayload<T extends PaymentGroupByArgs> = Prisma.PrismaPromise<Array<Prisma.PickEnumerable<PaymentGroupByOutputType, T['by']> & {
    [P in ((keyof T) & (keyof PaymentGroupByOutputType))]: P extends '_count' ? T[P] extends boolean ? number : Prisma.GetScalarType<T[P], PaymentGroupByOutputType[P]> : Prisma.GetScalarType<T[P], PaymentGroupByOutputType[P]>;
}>>;
export type PaymentWhereInput = {
    AND?: Prisma.PaymentWhereInput | Prisma.PaymentWhereInput[];
    OR?: Prisma.PaymentWhereInput[];
    NOT?: Prisma.PaymentWhereInput | Prisma.PaymentWhereInput[];
    id?: Prisma.StringFilter<"Payment"> | string;
    transactionId?: Prisma.StringFilter<"Payment"> | string;
    transferBy?: Prisma.StringFilter<"Payment"> | string;
    transferDate?: Prisma.DateTimeFilter<"Payment"> | Date | string;
    proofUrl?: Prisma.StringFilter<"Payment"> | string;
    filename?: Prisma.StringFilter<"Payment"> | string;
    mimetype?: Prisma.StringFilter<"Payment"> | string;
    size?: Prisma.IntFilter<"Payment"> | number;
    createdAt?: Prisma.DateTimeFilter<"Payment"> | Date | string;
    transaction?: Prisma.XOR<Prisma.TransactionScalarRelationFilter, Prisma.TransactionWhereInput>;
    transferUser?: Prisma.XOR<Prisma.UserScalarRelationFilter, Prisma.UserWhereInput>;
};
export type PaymentOrderByWithRelationInput = {
    id?: Prisma.SortOrder;
    transactionId?: Prisma.SortOrder;
    transferBy?: Prisma.SortOrder;
    transferDate?: Prisma.SortOrder;
    proofUrl?: Prisma.SortOrder;
    filename?: Prisma.SortOrder;
    mimetype?: Prisma.SortOrder;
    size?: Prisma.SortOrder;
    createdAt?: Prisma.SortOrder;
    transaction?: Prisma.TransactionOrderByWithRelationInput;
    transferUser?: Prisma.UserOrderByWithRelationInput;
};
export type PaymentWhereUniqueInput = Prisma.AtLeast<{
    id?: string;
    transactionId?: string;
    AND?: Prisma.PaymentWhereInput | Prisma.PaymentWhereInput[];
    OR?: Prisma.PaymentWhereInput[];
    NOT?: Prisma.PaymentWhereInput | Prisma.PaymentWhereInput[];
    transferBy?: Prisma.StringFilter<"Payment"> | string;
    transferDate?: Prisma.DateTimeFilter<"Payment"> | Date | string;
    proofUrl?: Prisma.StringFilter<"Payment"> | string;
    filename?: Prisma.StringFilter<"Payment"> | string;
    mimetype?: Prisma.StringFilter<"Payment"> | string;
    size?: Prisma.IntFilter<"Payment"> | number;
    createdAt?: Prisma.DateTimeFilter<"Payment"> | Date | string;
    transaction?: Prisma.XOR<Prisma.TransactionScalarRelationFilter, Prisma.TransactionWhereInput>;
    transferUser?: Prisma.XOR<Prisma.UserScalarRelationFilter, Prisma.UserWhereInput>;
}, "id" | "transactionId">;
export type PaymentOrderByWithAggregationInput = {
    id?: Prisma.SortOrder;
    transactionId?: Prisma.SortOrder;
    transferBy?: Prisma.SortOrder;
    transferDate?: Prisma.SortOrder;
    proofUrl?: Prisma.SortOrder;
    filename?: Prisma.SortOrder;
    mimetype?: Prisma.SortOrder;
    size?: Prisma.SortOrder;
    createdAt?: Prisma.SortOrder;
    _count?: Prisma.PaymentCountOrderByAggregateInput;
    _avg?: Prisma.PaymentAvgOrderByAggregateInput;
    _max?: Prisma.PaymentMaxOrderByAggregateInput;
    _min?: Prisma.PaymentMinOrderByAggregateInput;
    _sum?: Prisma.PaymentSumOrderByAggregateInput;
};
export type PaymentScalarWhereWithAggregatesInput = {
    AND?: Prisma.PaymentScalarWhereWithAggregatesInput | Prisma.PaymentScalarWhereWithAggregatesInput[];
    OR?: Prisma.PaymentScalarWhereWithAggregatesInput[];
    NOT?: Prisma.PaymentScalarWhereWithAggregatesInput | Prisma.PaymentScalarWhereWithAggregatesInput[];
    id?: Prisma.StringWithAggregatesFilter<"Payment"> | string;
    transactionId?: Prisma.StringWithAggregatesFilter<"Payment"> | string;
    transferBy?: Prisma.StringWithAggregatesFilter<"Payment"> | string;
    transferDate?: Prisma.DateTimeWithAggregatesFilter<"Payment"> | Date | string;
    proofUrl?: Prisma.StringWithAggregatesFilter<"Payment"> | string;
    filename?: Prisma.StringWithAggregatesFilter<"Payment"> | string;
    mimetype?: Prisma.StringWithAggregatesFilter<"Payment"> | string;
    size?: Prisma.IntWithAggregatesFilter<"Payment"> | number;
    createdAt?: Prisma.DateTimeWithAggregatesFilter<"Payment"> | Date | string;
};
export type PaymentCreateInput = {
    id?: string;
    transferDate: Date | string;
    proofUrl: string;
    filename: string;
    mimetype: string;
    size: number;
    createdAt?: Date | string;
    transaction: Prisma.TransactionCreateNestedOneWithoutPaymentsInput;
    transferUser: Prisma.UserCreateNestedOneWithoutPaymentsCreatedInput;
};
export type PaymentUncheckedCreateInput = {
    id?: string;
    transactionId: string;
    transferBy: string;
    transferDate: Date | string;
    proofUrl: string;
    filename: string;
    mimetype: string;
    size: number;
    createdAt?: Date | string;
};
export type PaymentUpdateInput = {
    id?: Prisma.StringFieldUpdateOperationsInput | string;
    transferDate?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string;
    proofUrl?: Prisma.StringFieldUpdateOperationsInput | string;
    filename?: Prisma.StringFieldUpdateOperationsInput | string;
    mimetype?: Prisma.StringFieldUpdateOperationsInput | string;
    size?: Prisma.IntFieldUpdateOperationsInput | number;
    createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string;
    transaction?: Prisma.TransactionUpdateOneRequiredWithoutPaymentsNestedInput;
    transferUser?: Prisma.UserUpdateOneRequiredWithoutPaymentsCreatedNestedInput;
};
export type PaymentUncheckedUpdateInput = {
    id?: Prisma.StringFieldUpdateOperationsInput | string;
    transactionId?: Prisma.StringFieldUpdateOperationsInput | string;
    transferBy?: Prisma.StringFieldUpdateOperationsInput | string;
    transferDate?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string;
    proofUrl?: Prisma.StringFieldUpdateOperationsInput | string;
    filename?: Prisma.StringFieldUpdateOperationsInput | string;
    mimetype?: Prisma.StringFieldUpdateOperationsInput | string;
    size?: Prisma.IntFieldUpdateOperationsInput | number;
    createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string;
};
export type PaymentCreateManyInput = {
    id?: string;
    transactionId: string;
    transferBy: string;
    transferDate: Date | string;
    proofUrl: string;
    filename: string;
    mimetype: string;
    size: number;
    createdAt?: Date | string;
};
export type PaymentUpdateManyMutationInput = {
    id?: Prisma.StringFieldUpdateOperationsInput | string;
    transferDate?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string;
    proofUrl?: Prisma.StringFieldUpdateOperationsInput | string;
    filename?: Prisma.StringFieldUpdateOperationsInput | string;
    mimetype?: Prisma.StringFieldUpdateOperationsInput | string;
    size?: Prisma.IntFieldUpdateOperationsInput | number;
    createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string;
};
export type PaymentUncheckedUpdateManyInput = {
    id?: Prisma.StringFieldUpdateOperationsInput | string;
    transactionId?: Prisma.StringFieldUpdateOperationsInput | string;
    transferBy?: Prisma.StringFieldUpdateOperationsInput | string;
    transferDate?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string;
    proofUrl?: Prisma.StringFieldUpdateOperationsInput | string;
    filename?: Prisma.StringFieldUpdateOperationsInput | string;
    mimetype?: Prisma.StringFieldUpdateOperationsInput | string;
    size?: Prisma.IntFieldUpdateOperationsInput | number;
    createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string;
};
export type PaymentListRelationFilter = {
    every?: Prisma.PaymentWhereInput;
    some?: Prisma.PaymentWhereInput;
    none?: Prisma.PaymentWhereInput;
};
export type PaymentOrderByRelationAggregateInput = {
    _count?: Prisma.SortOrder;
};
export type PaymentCountOrderByAggregateInput = {
    id?: Prisma.SortOrder;
    transactionId?: Prisma.SortOrder;
    transferBy?: Prisma.SortOrder;
    transferDate?: Prisma.SortOrder;
    proofUrl?: Prisma.SortOrder;
    filename?: Prisma.SortOrder;
    mimetype?: Prisma.SortOrder;
    size?: Prisma.SortOrder;
    createdAt?: Prisma.SortOrder;
};
export type PaymentAvgOrderByAggregateInput = {
    size?: Prisma.SortOrder;
};
export type PaymentMaxOrderByAggregateInput = {
    id?: Prisma.SortOrder;
    transactionId?: Prisma.SortOrder;
    transferBy?: Prisma.SortOrder;
    transferDate?: Prisma.SortOrder;
    proofUrl?: Prisma.SortOrder;
    filename?: Prisma.SortOrder;
    mimetype?: Prisma.SortOrder;
    size?: Prisma.SortOrder;
    createdAt?: Prisma.SortOrder;
};
export type PaymentMinOrderByAggregateInput = {
    id?: Prisma.SortOrder;
    transactionId?: Prisma.SortOrder;
    transferBy?: Prisma.SortOrder;
    transferDate?: Prisma.SortOrder;
    proofUrl?: Prisma.SortOrder;
    filename?: Prisma.SortOrder;
    mimetype?: Prisma.SortOrder;
    size?: Prisma.SortOrder;
    createdAt?: Prisma.SortOrder;
};
export type PaymentSumOrderByAggregateInput = {
    size?: Prisma.SortOrder;
};
export type PaymentCreateNestedManyWithoutTransferUserInput = {
    create?: Prisma.XOR<Prisma.PaymentCreateWithoutTransferUserInput, Prisma.PaymentUncheckedCreateWithoutTransferUserInput> | Prisma.PaymentCreateWithoutTransferUserInput[] | Prisma.PaymentUncheckedCreateWithoutTransferUserInput[];
    connectOrCreate?: Prisma.PaymentCreateOrConnectWithoutTransferUserInput | Prisma.PaymentCreateOrConnectWithoutTransferUserInput[];
    createMany?: Prisma.PaymentCreateManyTransferUserInputEnvelope;
    connect?: Prisma.PaymentWhereUniqueInput | Prisma.PaymentWhereUniqueInput[];
};
export type PaymentUncheckedCreateNestedManyWithoutTransferUserInput = {
    create?: Prisma.XOR<Prisma.PaymentCreateWithoutTransferUserInput, Prisma.PaymentUncheckedCreateWithoutTransferUserInput> | Prisma.PaymentCreateWithoutTransferUserInput[] | Prisma.PaymentUncheckedCreateWithoutTransferUserInput[];
    connectOrCreate?: Prisma.PaymentCreateOrConnectWithoutTransferUserInput | Prisma.PaymentCreateOrConnectWithoutTransferUserInput[];
    createMany?: Prisma.PaymentCreateManyTransferUserInputEnvelope;
    connect?: Prisma.PaymentWhereUniqueInput | Prisma.PaymentWhereUniqueInput[];
};
export type PaymentUpdateManyWithoutTransferUserNestedInput = {
    create?: Prisma.XOR<Prisma.PaymentCreateWithoutTransferUserInput, Prisma.PaymentUncheckedCreateWithoutTransferUserInput> | Prisma.PaymentCreateWithoutTransferUserInput[] | Prisma.PaymentUncheckedCreateWithoutTransferUserInput[];
    connectOrCreate?: Prisma.PaymentCreateOrConnectWithoutTransferUserInput | Prisma.PaymentCreateOrConnectWithoutTransferUserInput[];
    upsert?: Prisma.PaymentUpsertWithWhereUniqueWithoutTransferUserInput | Prisma.PaymentUpsertWithWhereUniqueWithoutTransferUserInput[];
    createMany?: Prisma.PaymentCreateManyTransferUserInputEnvelope;
    set?: Prisma.PaymentWhereUniqueInput | Prisma.PaymentWhereUniqueInput[];
    disconnect?: Prisma.PaymentWhereUniqueInput | Prisma.PaymentWhereUniqueInput[];
    delete?: Prisma.PaymentWhereUniqueInput | Prisma.PaymentWhereUniqueInput[];
    connect?: Prisma.PaymentWhereUniqueInput | Prisma.PaymentWhereUniqueInput[];
    update?: Prisma.PaymentUpdateWithWhereUniqueWithoutTransferUserInput | Prisma.PaymentUpdateWithWhereUniqueWithoutTransferUserInput[];
    updateMany?: Prisma.PaymentUpdateManyWithWhereWithoutTransferUserInput | Prisma.PaymentUpdateManyWithWhereWithoutTransferUserInput[];
    deleteMany?: Prisma.PaymentScalarWhereInput | Prisma.PaymentScalarWhereInput[];
};
export type PaymentUncheckedUpdateManyWithoutTransferUserNestedInput = {
    create?: Prisma.XOR<Prisma.PaymentCreateWithoutTransferUserInput, Prisma.PaymentUncheckedCreateWithoutTransferUserInput> | Prisma.PaymentCreateWithoutTransferUserInput[] | Prisma.PaymentUncheckedCreateWithoutTransferUserInput[];
    connectOrCreate?: Prisma.PaymentCreateOrConnectWithoutTransferUserInput | Prisma.PaymentCreateOrConnectWithoutTransferUserInput[];
    upsert?: Prisma.PaymentUpsertWithWhereUniqueWithoutTransferUserInput | Prisma.PaymentUpsertWithWhereUniqueWithoutTransferUserInput[];
    createMany?: Prisma.PaymentCreateManyTransferUserInputEnvelope;
    set?: Prisma.PaymentWhereUniqueInput | Prisma.PaymentWhereUniqueInput[];
    disconnect?: Prisma.PaymentWhereUniqueInput | Prisma.PaymentWhereUniqueInput[];
    delete?: Prisma.PaymentWhereUniqueInput | Prisma.PaymentWhereUniqueInput[];
    connect?: Prisma.PaymentWhereUniqueInput | Prisma.PaymentWhereUniqueInput[];
    update?: Prisma.PaymentUpdateWithWhereUniqueWithoutTransferUserInput | Prisma.PaymentUpdateWithWhereUniqueWithoutTransferUserInput[];
    updateMany?: Prisma.PaymentUpdateManyWithWhereWithoutTransferUserInput | Prisma.PaymentUpdateManyWithWhereWithoutTransferUserInput[];
    deleteMany?: Prisma.PaymentScalarWhereInput | Prisma.PaymentScalarWhereInput[];
};
export type PaymentCreateNestedManyWithoutTransactionInput = {
    create?: Prisma.XOR<Prisma.PaymentCreateWithoutTransactionInput, Prisma.PaymentUncheckedCreateWithoutTransactionInput> | Prisma.PaymentCreateWithoutTransactionInput[] | Prisma.PaymentUncheckedCreateWithoutTransactionInput[];
    connectOrCreate?: Prisma.PaymentCreateOrConnectWithoutTransactionInput | Prisma.PaymentCreateOrConnectWithoutTransactionInput[];
    createMany?: Prisma.PaymentCreateManyTransactionInputEnvelope;
    connect?: Prisma.PaymentWhereUniqueInput | Prisma.PaymentWhereUniqueInput[];
};
export type PaymentUncheckedCreateNestedManyWithoutTransactionInput = {
    create?: Prisma.XOR<Prisma.PaymentCreateWithoutTransactionInput, Prisma.PaymentUncheckedCreateWithoutTransactionInput> | Prisma.PaymentCreateWithoutTransactionInput[] | Prisma.PaymentUncheckedCreateWithoutTransactionInput[];
    connectOrCreate?: Prisma.PaymentCreateOrConnectWithoutTransactionInput | Prisma.PaymentCreateOrConnectWithoutTransactionInput[];
    createMany?: Prisma.PaymentCreateManyTransactionInputEnvelope;
    connect?: Prisma.PaymentWhereUniqueInput | Prisma.PaymentWhereUniqueInput[];
};
export type PaymentUpdateManyWithoutTransactionNestedInput = {
    create?: Prisma.XOR<Prisma.PaymentCreateWithoutTransactionInput, Prisma.PaymentUncheckedCreateWithoutTransactionInput> | Prisma.PaymentCreateWithoutTransactionInput[] | Prisma.PaymentUncheckedCreateWithoutTransactionInput[];
    connectOrCreate?: Prisma.PaymentCreateOrConnectWithoutTransactionInput | Prisma.PaymentCreateOrConnectWithoutTransactionInput[];
    upsert?: Prisma.PaymentUpsertWithWhereUniqueWithoutTransactionInput | Prisma.PaymentUpsertWithWhereUniqueWithoutTransactionInput[];
    createMany?: Prisma.PaymentCreateManyTransactionInputEnvelope;
    set?: Prisma.PaymentWhereUniqueInput | Prisma.PaymentWhereUniqueInput[];
    disconnect?: Prisma.PaymentWhereUniqueInput | Prisma.PaymentWhereUniqueInput[];
    delete?: Prisma.PaymentWhereUniqueInput | Prisma.PaymentWhereUniqueInput[];
    connect?: Prisma.PaymentWhereUniqueInput | Prisma.PaymentWhereUniqueInput[];
    update?: Prisma.PaymentUpdateWithWhereUniqueWithoutTransactionInput | Prisma.PaymentUpdateWithWhereUniqueWithoutTransactionInput[];
    updateMany?: Prisma.PaymentUpdateManyWithWhereWithoutTransactionInput | Prisma.PaymentUpdateManyWithWhereWithoutTransactionInput[];
    deleteMany?: Prisma.PaymentScalarWhereInput | Prisma.PaymentScalarWhereInput[];
};
export type PaymentUncheckedUpdateManyWithoutTransactionNestedInput = {
    create?: Prisma.XOR<Prisma.PaymentCreateWithoutTransactionInput, Prisma.PaymentUncheckedCreateWithoutTransactionInput> | Prisma.PaymentCreateWithoutTransactionInput[] | Prisma.PaymentUncheckedCreateWithoutTransactionInput[];
    connectOrCreate?: Prisma.PaymentCreateOrConnectWithoutTransactionInput | Prisma.PaymentCreateOrConnectWithoutTransactionInput[];
    upsert?: Prisma.PaymentUpsertWithWhereUniqueWithoutTransactionInput | Prisma.PaymentUpsertWithWhereUniqueWithoutTransactionInput[];
    createMany?: Prisma.PaymentCreateManyTransactionInputEnvelope;
    set?: Prisma.PaymentWhereUniqueInput | Prisma.PaymentWhereUniqueInput[];
    disconnect?: Prisma.PaymentWhereUniqueInput | Prisma.PaymentWhereUniqueInput[];
    delete?: Prisma.PaymentWhereUniqueInput | Prisma.PaymentWhereUniqueInput[];
    connect?: Prisma.PaymentWhereUniqueInput | Prisma.PaymentWhereUniqueInput[];
    update?: Prisma.PaymentUpdateWithWhereUniqueWithoutTransactionInput | Prisma.PaymentUpdateWithWhereUniqueWithoutTransactionInput[];
    updateMany?: Prisma.PaymentUpdateManyWithWhereWithoutTransactionInput | Prisma.PaymentUpdateManyWithWhereWithoutTransactionInput[];
    deleteMany?: Prisma.PaymentScalarWhereInput | Prisma.PaymentScalarWhereInput[];
};
export type PaymentCreateWithoutTransferUserInput = {
    id?: string;
    transferDate: Date | string;
    proofUrl: string;
    filename: string;
    mimetype: string;
    size: number;
    createdAt?: Date | string;
    transaction: Prisma.TransactionCreateNestedOneWithoutPaymentsInput;
};
export type PaymentUncheckedCreateWithoutTransferUserInput = {
    id?: string;
    transactionId: string;
    transferDate: Date | string;
    proofUrl: string;
    filename: string;
    mimetype: string;
    size: number;
    createdAt?: Date | string;
};
export type PaymentCreateOrConnectWithoutTransferUserInput = {
    where: Prisma.PaymentWhereUniqueInput;
    create: Prisma.XOR<Prisma.PaymentCreateWithoutTransferUserInput, Prisma.PaymentUncheckedCreateWithoutTransferUserInput>;
};
export type PaymentCreateManyTransferUserInputEnvelope = {
    data: Prisma.PaymentCreateManyTransferUserInput | Prisma.PaymentCreateManyTransferUserInput[];
    skipDuplicates?: boolean;
};
export type PaymentUpsertWithWhereUniqueWithoutTransferUserInput = {
    where: Prisma.PaymentWhereUniqueInput;
    update: Prisma.XOR<Prisma.PaymentUpdateWithoutTransferUserInput, Prisma.PaymentUncheckedUpdateWithoutTransferUserInput>;
    create: Prisma.XOR<Prisma.PaymentCreateWithoutTransferUserInput, Prisma.PaymentUncheckedCreateWithoutTransferUserInput>;
};
export type PaymentUpdateWithWhereUniqueWithoutTransferUserInput = {
    where: Prisma.PaymentWhereUniqueInput;
    data: Prisma.XOR<Prisma.PaymentUpdateWithoutTransferUserInput, Prisma.PaymentUncheckedUpdateWithoutTransferUserInput>;
};
export type PaymentUpdateManyWithWhereWithoutTransferUserInput = {
    where: Prisma.PaymentScalarWhereInput;
    data: Prisma.XOR<Prisma.PaymentUpdateManyMutationInput, Prisma.PaymentUncheckedUpdateManyWithoutTransferUserInput>;
};
export type PaymentScalarWhereInput = {
    AND?: Prisma.PaymentScalarWhereInput | Prisma.PaymentScalarWhereInput[];
    OR?: Prisma.PaymentScalarWhereInput[];
    NOT?: Prisma.PaymentScalarWhereInput | Prisma.PaymentScalarWhereInput[];
    id?: Prisma.StringFilter<"Payment"> | string;
    transactionId?: Prisma.StringFilter<"Payment"> | string;
    transferBy?: Prisma.StringFilter<"Payment"> | string;
    transferDate?: Prisma.DateTimeFilter<"Payment"> | Date | string;
    proofUrl?: Prisma.StringFilter<"Payment"> | string;
    filename?: Prisma.StringFilter<"Payment"> | string;
    mimetype?: Prisma.StringFilter<"Payment"> | string;
    size?: Prisma.IntFilter<"Payment"> | number;
    createdAt?: Prisma.DateTimeFilter<"Payment"> | Date | string;
};
export type PaymentCreateWithoutTransactionInput = {
    id?: string;
    transferDate: Date | string;
    proofUrl: string;
    filename: string;
    mimetype: string;
    size: number;
    createdAt?: Date | string;
    transferUser: Prisma.UserCreateNestedOneWithoutPaymentsCreatedInput;
};
export type PaymentUncheckedCreateWithoutTransactionInput = {
    id?: string;
    transferBy: string;
    transferDate: Date | string;
    proofUrl: string;
    filename: string;
    mimetype: string;
    size: number;
    createdAt?: Date | string;
};
export type PaymentCreateOrConnectWithoutTransactionInput = {
    where: Prisma.PaymentWhereUniqueInput;
    create: Prisma.XOR<Prisma.PaymentCreateWithoutTransactionInput, Prisma.PaymentUncheckedCreateWithoutTransactionInput>;
};
export type PaymentCreateManyTransactionInputEnvelope = {
    data: Prisma.PaymentCreateManyTransactionInput | Prisma.PaymentCreateManyTransactionInput[];
    skipDuplicates?: boolean;
};
export type PaymentUpsertWithWhereUniqueWithoutTransactionInput = {
    where: Prisma.PaymentWhereUniqueInput;
    update: Prisma.XOR<Prisma.PaymentUpdateWithoutTransactionInput, Prisma.PaymentUncheckedUpdateWithoutTransactionInput>;
    create: Prisma.XOR<Prisma.PaymentCreateWithoutTransactionInput, Prisma.PaymentUncheckedCreateWithoutTransactionInput>;
};
export type PaymentUpdateWithWhereUniqueWithoutTransactionInput = {
    where: Prisma.PaymentWhereUniqueInput;
    data: Prisma.XOR<Prisma.PaymentUpdateWithoutTransactionInput, Prisma.PaymentUncheckedUpdateWithoutTransactionInput>;
};
export type PaymentUpdateManyWithWhereWithoutTransactionInput = {
    where: Prisma.PaymentScalarWhereInput;
    data: Prisma.XOR<Prisma.PaymentUpdateManyMutationInput, Prisma.PaymentUncheckedUpdateManyWithoutTransactionInput>;
};
export type PaymentCreateManyTransferUserInput = {
    id?: string;
    transactionId: string;
    transferDate: Date | string;
    proofUrl: string;
    filename: string;
    mimetype: string;
    size: number;
    createdAt?: Date | string;
};
export type PaymentUpdateWithoutTransferUserInput = {
    id?: Prisma.StringFieldUpdateOperationsInput | string;
    transferDate?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string;
    proofUrl?: Prisma.StringFieldUpdateOperationsInput | string;
    filename?: Prisma.StringFieldUpdateOperationsInput | string;
    mimetype?: Prisma.StringFieldUpdateOperationsInput | string;
    size?: Prisma.IntFieldUpdateOperationsInput | number;
    createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string;
    transaction?: Prisma.TransactionUpdateOneRequiredWithoutPaymentsNestedInput;
};
export type PaymentUncheckedUpdateWithoutTransferUserInput = {
    id?: Prisma.StringFieldUpdateOperationsInput | string;
    transactionId?: Prisma.StringFieldUpdateOperationsInput | string;
    transferDate?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string;
    proofUrl?: Prisma.StringFieldUpdateOperationsInput | string;
    filename?: Prisma.StringFieldUpdateOperationsInput | string;
    mimetype?: Prisma.StringFieldUpdateOperationsInput | string;
    size?: Prisma.IntFieldUpdateOperationsInput | number;
    createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string;
};
export type PaymentUncheckedUpdateManyWithoutTransferUserInput = {
    id?: Prisma.StringFieldUpdateOperationsInput | string;
    transactionId?: Prisma.StringFieldUpdateOperationsInput | string;
    transferDate?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string;
    proofUrl?: Prisma.StringFieldUpdateOperationsInput | string;
    filename?: Prisma.StringFieldUpdateOperationsInput | string;
    mimetype?: Prisma.StringFieldUpdateOperationsInput | string;
    size?: Prisma.IntFieldUpdateOperationsInput | number;
    createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string;
};
export type PaymentCreateManyTransactionInput = {
    id?: string;
    transferBy: string;
    transferDate: Date | string;
    proofUrl: string;
    filename: string;
    mimetype: string;
    size: number;
    createdAt?: Date | string;
};
export type PaymentUpdateWithoutTransactionInput = {
    id?: Prisma.StringFieldUpdateOperationsInput | string;
    transferDate?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string;
    proofUrl?: Prisma.StringFieldUpdateOperationsInput | string;
    filename?: Prisma.StringFieldUpdateOperationsInput | string;
    mimetype?: Prisma.StringFieldUpdateOperationsInput | string;
    size?: Prisma.IntFieldUpdateOperationsInput | number;
    createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string;
    transferUser?: Prisma.UserUpdateOneRequiredWithoutPaymentsCreatedNestedInput;
};
export type PaymentUncheckedUpdateWithoutTransactionInput = {
    id?: Prisma.StringFieldUpdateOperationsInput | string;
    transferBy?: Prisma.StringFieldUpdateOperationsInput | string;
    transferDate?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string;
    proofUrl?: Prisma.StringFieldUpdateOperationsInput | string;
    filename?: Prisma.StringFieldUpdateOperationsInput | string;
    mimetype?: Prisma.StringFieldUpdateOperationsInput | string;
    size?: Prisma.IntFieldUpdateOperationsInput | number;
    createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string;
};
export type PaymentUncheckedUpdateManyWithoutTransactionInput = {
    id?: Prisma.StringFieldUpdateOperationsInput | string;
    transferBy?: Prisma.StringFieldUpdateOperationsInput | string;
    transferDate?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string;
    proofUrl?: Prisma.StringFieldUpdateOperationsInput | string;
    filename?: Prisma.StringFieldUpdateOperationsInput | string;
    mimetype?: Prisma.StringFieldUpdateOperationsInput | string;
    size?: Prisma.IntFieldUpdateOperationsInput | number;
    createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string;
};
export type PaymentSelect<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = runtime.Types.Extensions.GetSelect<{
    id?: boolean;
    transactionId?: boolean;
    transferBy?: boolean;
    transferDate?: boolean;
    proofUrl?: boolean;
    filename?: boolean;
    mimetype?: boolean;
    size?: boolean;
    createdAt?: boolean;
    transaction?: boolean | Prisma.TransactionDefaultArgs<ExtArgs>;
    transferUser?: boolean | Prisma.UserDefaultArgs<ExtArgs>;
}, ExtArgs["result"]["payment"]>;
export type PaymentSelectCreateManyAndReturn<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = runtime.Types.Extensions.GetSelect<{
    id?: boolean;
    transactionId?: boolean;
    transferBy?: boolean;
    transferDate?: boolean;
    proofUrl?: boolean;
    filename?: boolean;
    mimetype?: boolean;
    size?: boolean;
    createdAt?: boolean;
    transaction?: boolean | Prisma.TransactionDefaultArgs<ExtArgs>;
    transferUser?: boolean | Prisma.UserDefaultArgs<ExtArgs>;
}, ExtArgs["result"]["payment"]>;
export type PaymentSelectUpdateManyAndReturn<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = runtime.Types.Extensions.GetSelect<{
    id?: boolean;
    transactionId?: boolean;
    transferBy?: boolean;
    transferDate?: boolean;
    proofUrl?: boolean;
    filename?: boolean;
    mimetype?: boolean;
    size?: boolean;
    createdAt?: boolean;
    transaction?: boolean | Prisma.TransactionDefaultArgs<ExtArgs>;
    transferUser?: boolean | Prisma.UserDefaultArgs<ExtArgs>;
}, ExtArgs["result"]["payment"]>;
export type PaymentSelectScalar = {
    id?: boolean;
    transactionId?: boolean;
    transferBy?: boolean;
    transferDate?: boolean;
    proofUrl?: boolean;
    filename?: boolean;
    mimetype?: boolean;
    size?: boolean;
    createdAt?: boolean;
};
export type PaymentOmit<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = runtime.Types.Extensions.GetOmit<"id" | "transactionId" | "transferBy" | "transferDate" | "proofUrl" | "filename" | "mimetype" | "size" | "createdAt", ExtArgs["result"]["payment"]>;
export type PaymentInclude<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {
    transaction?: boolean | Prisma.TransactionDefaultArgs<ExtArgs>;
    transferUser?: boolean | Prisma.UserDefaultArgs<ExtArgs>;
};
export type PaymentIncludeCreateManyAndReturn<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {
    transaction?: boolean | Prisma.TransactionDefaultArgs<ExtArgs>;
    transferUser?: boolean | Prisma.UserDefaultArgs<ExtArgs>;
};
export type PaymentIncludeUpdateManyAndReturn<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {
    transaction?: boolean | Prisma.TransactionDefaultArgs<ExtArgs>;
    transferUser?: boolean | Prisma.UserDefaultArgs<ExtArgs>;
};
export type $PaymentPayload<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {
    name: "Payment";
    objects: {
        transaction: Prisma.$TransactionPayload<ExtArgs>;
        transferUser: Prisma.$UserPayload<ExtArgs>;
    };
    scalars: runtime.Types.Extensions.GetPayloadResult<{
        id: string;
        transactionId: string;
        transferBy: string;
        transferDate: Date;
        proofUrl: string;
        filename: string;
        mimetype: string;
        size: number;
        createdAt: Date;
    }, ExtArgs["result"]["payment"]>;
    composites: {};
};
export type PaymentGetPayload<S extends boolean | null | undefined | PaymentDefaultArgs> = runtime.Types.Result.GetResult<Prisma.$PaymentPayload, S>;
export type PaymentCountArgs<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = Omit<PaymentFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
    select?: PaymentCountAggregateInputType | true;
};
export interface PaymentDelegate<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs, GlobalOmitOptions = {}> {
    [K: symbol]: {
        types: Prisma.TypeMap<ExtArgs>['model']['Payment'];
        meta: {
            name: 'Payment';
        };
    };
    findUnique<T extends PaymentFindUniqueArgs>(args: Prisma.SelectSubset<T, PaymentFindUniqueArgs<ExtArgs>>): Prisma.Prisma__PaymentClient<runtime.Types.Result.GetResult<Prisma.$PaymentPayload<ExtArgs>, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>;
    findUniqueOrThrow<T extends PaymentFindUniqueOrThrowArgs>(args: Prisma.SelectSubset<T, PaymentFindUniqueOrThrowArgs<ExtArgs>>): Prisma.Prisma__PaymentClient<runtime.Types.Result.GetResult<Prisma.$PaymentPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>;
    findFirst<T extends PaymentFindFirstArgs>(args?: Prisma.SelectSubset<T, PaymentFindFirstArgs<ExtArgs>>): Prisma.Prisma__PaymentClient<runtime.Types.Result.GetResult<Prisma.$PaymentPayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>;
    findFirstOrThrow<T extends PaymentFindFirstOrThrowArgs>(args?: Prisma.SelectSubset<T, PaymentFindFirstOrThrowArgs<ExtArgs>>): Prisma.Prisma__PaymentClient<runtime.Types.Result.GetResult<Prisma.$PaymentPayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>;
    findMany<T extends PaymentFindManyArgs>(args?: Prisma.SelectSubset<T, PaymentFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<runtime.Types.Result.GetResult<Prisma.$PaymentPayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>;
    create<T extends PaymentCreateArgs>(args: Prisma.SelectSubset<T, PaymentCreateArgs<ExtArgs>>): Prisma.Prisma__PaymentClient<runtime.Types.Result.GetResult<Prisma.$PaymentPayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>;
    createMany<T extends PaymentCreateManyArgs>(args?: Prisma.SelectSubset<T, PaymentCreateManyArgs<ExtArgs>>): Prisma.PrismaPromise<Prisma.BatchPayload>;
    createManyAndReturn<T extends PaymentCreateManyAndReturnArgs>(args?: Prisma.SelectSubset<T, PaymentCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<runtime.Types.Result.GetResult<Prisma.$PaymentPayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>;
    delete<T extends PaymentDeleteArgs>(args: Prisma.SelectSubset<T, PaymentDeleteArgs<ExtArgs>>): Prisma.Prisma__PaymentClient<runtime.Types.Result.GetResult<Prisma.$PaymentPayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>;
    update<T extends PaymentUpdateArgs>(args: Prisma.SelectSubset<T, PaymentUpdateArgs<ExtArgs>>): Prisma.Prisma__PaymentClient<runtime.Types.Result.GetResult<Prisma.$PaymentPayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>;
    deleteMany<T extends PaymentDeleteManyArgs>(args?: Prisma.SelectSubset<T, PaymentDeleteManyArgs<ExtArgs>>): Prisma.PrismaPromise<Prisma.BatchPayload>;
    updateMany<T extends PaymentUpdateManyArgs>(args: Prisma.SelectSubset<T, PaymentUpdateManyArgs<ExtArgs>>): Prisma.PrismaPromise<Prisma.BatchPayload>;
    updateManyAndReturn<T extends PaymentUpdateManyAndReturnArgs>(args: Prisma.SelectSubset<T, PaymentUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<runtime.Types.Result.GetResult<Prisma.$PaymentPayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>;
    upsert<T extends PaymentUpsertArgs>(args: Prisma.SelectSubset<T, PaymentUpsertArgs<ExtArgs>>): Prisma.Prisma__PaymentClient<runtime.Types.Result.GetResult<Prisma.$PaymentPayload<ExtArgs>, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>;
    count<T extends PaymentCountArgs>(args?: Prisma.Subset<T, PaymentCountArgs>): Prisma.PrismaPromise<T extends runtime.Types.Utils.Record<'select', any> ? T['select'] extends true ? number : Prisma.GetScalarType<T['select'], PaymentCountAggregateOutputType> : number>;
    aggregate<T extends PaymentAggregateArgs>(args: Prisma.Subset<T, PaymentAggregateArgs>): Prisma.PrismaPromise<GetPaymentAggregateType<T>>;
    groupBy<T extends PaymentGroupByArgs, HasSelectOrTake extends Prisma.Or<Prisma.Extends<'skip', Prisma.Keys<T>>, Prisma.Extends<'take', Prisma.Keys<T>>>, OrderByArg extends Prisma.True extends HasSelectOrTake ? {
        orderBy: PaymentGroupByArgs['orderBy'];
    } : {
        orderBy?: PaymentGroupByArgs['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, PaymentGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetPaymentGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>;
    readonly fields: PaymentFieldRefs;
}
export interface Prisma__PaymentClient<T, Null = never, ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise";
    transaction<T extends Prisma.TransactionDefaultArgs<ExtArgs> = {}>(args?: Prisma.Subset<T, Prisma.TransactionDefaultArgs<ExtArgs>>): Prisma.Prisma__TransactionClient<runtime.Types.Result.GetResult<Prisma.$TransactionPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions>;
    transferUser<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 PaymentFieldRefs {
    readonly id: Prisma.FieldRef<"Payment", 'String'>;
    readonly transactionId: Prisma.FieldRef<"Payment", 'String'>;
    readonly transferBy: Prisma.FieldRef<"Payment", 'String'>;
    readonly transferDate: Prisma.FieldRef<"Payment", 'DateTime'>;
    readonly proofUrl: Prisma.FieldRef<"Payment", 'String'>;
    readonly filename: Prisma.FieldRef<"Payment", 'String'>;
    readonly mimetype: Prisma.FieldRef<"Payment", 'String'>;
    readonly size: Prisma.FieldRef<"Payment", 'Int'>;
    readonly createdAt: Prisma.FieldRef<"Payment", 'DateTime'>;
}
export type PaymentFindUniqueArgs<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {
    select?: Prisma.PaymentSelect<ExtArgs> | null;
    omit?: Prisma.PaymentOmit<ExtArgs> | null;
    include?: Prisma.PaymentInclude<ExtArgs> | null;
    where: Prisma.PaymentWhereUniqueInput;
};
export type PaymentFindUniqueOrThrowArgs<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {
    select?: Prisma.PaymentSelect<ExtArgs> | null;
    omit?: Prisma.PaymentOmit<ExtArgs> | null;
    include?: Prisma.PaymentInclude<ExtArgs> | null;
    where: Prisma.PaymentWhereUniqueInput;
};
export type PaymentFindFirstArgs<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {
    select?: Prisma.PaymentSelect<ExtArgs> | null;
    omit?: Prisma.PaymentOmit<ExtArgs> | null;
    include?: Prisma.PaymentInclude<ExtArgs> | null;
    where?: Prisma.PaymentWhereInput;
    orderBy?: Prisma.PaymentOrderByWithRelationInput | Prisma.PaymentOrderByWithRelationInput[];
    cursor?: Prisma.PaymentWhereUniqueInput;
    take?: number;
    skip?: number;
    distinct?: Prisma.PaymentScalarFieldEnum | Prisma.PaymentScalarFieldEnum[];
};
export type PaymentFindFirstOrThrowArgs<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {
    select?: Prisma.PaymentSelect<ExtArgs> | null;
    omit?: Prisma.PaymentOmit<ExtArgs> | null;
    include?: Prisma.PaymentInclude<ExtArgs> | null;
    where?: Prisma.PaymentWhereInput;
    orderBy?: Prisma.PaymentOrderByWithRelationInput | Prisma.PaymentOrderByWithRelationInput[];
    cursor?: Prisma.PaymentWhereUniqueInput;
    take?: number;
    skip?: number;
    distinct?: Prisma.PaymentScalarFieldEnum | Prisma.PaymentScalarFieldEnum[];
};
export type PaymentFindManyArgs<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {
    select?: Prisma.PaymentSelect<ExtArgs> | null;
    omit?: Prisma.PaymentOmit<ExtArgs> | null;
    include?: Prisma.PaymentInclude<ExtArgs> | null;
    where?: Prisma.PaymentWhereInput;
    orderBy?: Prisma.PaymentOrderByWithRelationInput | Prisma.PaymentOrderByWithRelationInput[];
    cursor?: Prisma.PaymentWhereUniqueInput;
    take?: number;
    skip?: number;
    distinct?: Prisma.PaymentScalarFieldEnum | Prisma.PaymentScalarFieldEnum[];
};
export type PaymentCreateArgs<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {
    select?: Prisma.PaymentSelect<ExtArgs> | null;
    omit?: Prisma.PaymentOmit<ExtArgs> | null;
    include?: Prisma.PaymentInclude<ExtArgs> | null;
    data: Prisma.XOR<Prisma.PaymentCreateInput, Prisma.PaymentUncheckedCreateInput>;
};
export type PaymentCreateManyArgs<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {
    data: Prisma.PaymentCreateManyInput | Prisma.PaymentCreateManyInput[];
    skipDuplicates?: boolean;
};
export type PaymentCreateManyAndReturnArgs<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {
    select?: Prisma.PaymentSelectCreateManyAndReturn<ExtArgs> | null;
    omit?: Prisma.PaymentOmit<ExtArgs> | null;
    data: Prisma.PaymentCreateManyInput | Prisma.PaymentCreateManyInput[];
    skipDuplicates?: boolean;
    include?: Prisma.PaymentIncludeCreateManyAndReturn<ExtArgs> | null;
};
export type PaymentUpdateArgs<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {
    select?: Prisma.PaymentSelect<ExtArgs> | null;
    omit?: Prisma.PaymentOmit<ExtArgs> | null;
    include?: Prisma.PaymentInclude<ExtArgs> | null;
    data: Prisma.XOR<Prisma.PaymentUpdateInput, Prisma.PaymentUncheckedUpdateInput>;
    where: Prisma.PaymentWhereUniqueInput;
};
export type PaymentUpdateManyArgs<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {
    data: Prisma.XOR<Prisma.PaymentUpdateManyMutationInput, Prisma.PaymentUncheckedUpdateManyInput>;
    where?: Prisma.PaymentWhereInput;
    limit?: number;
};
export type PaymentUpdateManyAndReturnArgs<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {
    select?: Prisma.PaymentSelectUpdateManyAndReturn<ExtArgs> | null;
    omit?: Prisma.PaymentOmit<ExtArgs> | null;
    data: Prisma.XOR<Prisma.PaymentUpdateManyMutationInput, Prisma.PaymentUncheckedUpdateManyInput>;
    where?: Prisma.PaymentWhereInput;
    limit?: number;
    include?: Prisma.PaymentIncludeUpdateManyAndReturn<ExtArgs> | null;
};
export type PaymentUpsertArgs<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {
    select?: Prisma.PaymentSelect<ExtArgs> | null;
    omit?: Prisma.PaymentOmit<ExtArgs> | null;
    include?: Prisma.PaymentInclude<ExtArgs> | null;
    where: Prisma.PaymentWhereUniqueInput;
    create: Prisma.XOR<Prisma.PaymentCreateInput, Prisma.PaymentUncheckedCreateInput>;
    update: Prisma.XOR<Prisma.PaymentUpdateInput, Prisma.PaymentUncheckedUpdateInput>;
};
export type PaymentDeleteArgs<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {
    select?: Prisma.PaymentSelect<ExtArgs> | null;
    omit?: Prisma.PaymentOmit<ExtArgs> | null;
    include?: Prisma.PaymentInclude<ExtArgs> | null;
    where: Prisma.PaymentWhereUniqueInput;
};
export type PaymentDeleteManyArgs<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {
    where?: Prisma.PaymentWhereInput;
    limit?: number;
};
export type PaymentDefaultArgs<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {
    select?: Prisma.PaymentSelect<ExtArgs> | null;
    omit?: Prisma.PaymentOmit<ExtArgs> | null;
    include?: Prisma.PaymentInclude<ExtArgs> | null;
};
export {};
