import type * as runtime from "@prisma/client/runtime/client";
import type * as $Enums from "../enums";
import type * as Prisma from "../internal/prismaNamespace";
export type ApprovalModel = runtime.Types.Result.DefaultSelection<Prisma.$ApprovalPayload>;
export type AggregateApproval = {
    _count: ApprovalCountAggregateOutputType | null;
    _min: ApprovalMinAggregateOutputType | null;
    _max: ApprovalMaxAggregateOutputType | null;
};
export type ApprovalMinAggregateOutputType = {
    id: string | null;
    transactionId: string | null;
    role: $Enums.ApprovalRole | null;
    approvedBy: string | null;
    approvedAt: Date | null;
    notes: string | null;
};
export type ApprovalMaxAggregateOutputType = {
    id: string | null;
    transactionId: string | null;
    role: $Enums.ApprovalRole | null;
    approvedBy: string | null;
    approvedAt: Date | null;
    notes: string | null;
};
export type ApprovalCountAggregateOutputType = {
    id: number;
    transactionId: number;
    role: number;
    approvedBy: number;
    approvedAt: number;
    notes: number;
    _all: number;
};
export type ApprovalMinAggregateInputType = {
    id?: true;
    transactionId?: true;
    role?: true;
    approvedBy?: true;
    approvedAt?: true;
    notes?: true;
};
export type ApprovalMaxAggregateInputType = {
    id?: true;
    transactionId?: true;
    role?: true;
    approvedBy?: true;
    approvedAt?: true;
    notes?: true;
};
export type ApprovalCountAggregateInputType = {
    id?: true;
    transactionId?: true;
    role?: true;
    approvedBy?: true;
    approvedAt?: true;
    notes?: true;
    _all?: true;
};
export type ApprovalAggregateArgs<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {
    where?: Prisma.ApprovalWhereInput;
    orderBy?: Prisma.ApprovalOrderByWithRelationInput | Prisma.ApprovalOrderByWithRelationInput[];
    cursor?: Prisma.ApprovalWhereUniqueInput;
    take?: number;
    skip?: number;
    _count?: true | ApprovalCountAggregateInputType;
    _min?: ApprovalMinAggregateInputType;
    _max?: ApprovalMaxAggregateInputType;
};
export type GetApprovalAggregateType<T extends ApprovalAggregateArgs> = {
    [P in keyof T & keyof AggregateApproval]: P extends '_count' | 'count' ? T[P] extends true ? number : Prisma.GetScalarType<T[P], AggregateApproval[P]> : Prisma.GetScalarType<T[P], AggregateApproval[P]>;
};
export type ApprovalGroupByArgs<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {
    where?: Prisma.ApprovalWhereInput;
    orderBy?: Prisma.ApprovalOrderByWithAggregationInput | Prisma.ApprovalOrderByWithAggregationInput[];
    by: Prisma.ApprovalScalarFieldEnum[] | Prisma.ApprovalScalarFieldEnum;
    having?: Prisma.ApprovalScalarWhereWithAggregatesInput;
    take?: number;
    skip?: number;
    _count?: ApprovalCountAggregateInputType | true;
    _min?: ApprovalMinAggregateInputType;
    _max?: ApprovalMaxAggregateInputType;
};
export type ApprovalGroupByOutputType = {
    id: string;
    transactionId: string;
    role: $Enums.ApprovalRole;
    approvedBy: string;
    approvedAt: Date;
    notes: string | null;
    _count: ApprovalCountAggregateOutputType | null;
    _min: ApprovalMinAggregateOutputType | null;
    _max: ApprovalMaxAggregateOutputType | null;
};
type GetApprovalGroupByPayload<T extends ApprovalGroupByArgs> = Prisma.PrismaPromise<Array<Prisma.PickEnumerable<ApprovalGroupByOutputType, T['by']> & {
    [P in ((keyof T) & (keyof ApprovalGroupByOutputType))]: P extends '_count' ? T[P] extends boolean ? number : Prisma.GetScalarType<T[P], ApprovalGroupByOutputType[P]> : Prisma.GetScalarType<T[P], ApprovalGroupByOutputType[P]>;
}>>;
export type ApprovalWhereInput = {
    AND?: Prisma.ApprovalWhereInput | Prisma.ApprovalWhereInput[];
    OR?: Prisma.ApprovalWhereInput[];
    NOT?: Prisma.ApprovalWhereInput | Prisma.ApprovalWhereInput[];
    id?: Prisma.StringFilter<"Approval"> | string;
    transactionId?: Prisma.StringFilter<"Approval"> | string;
    role?: Prisma.EnumApprovalRoleFilter<"Approval"> | $Enums.ApprovalRole;
    approvedBy?: Prisma.StringFilter<"Approval"> | string;
    approvedAt?: Prisma.DateTimeFilter<"Approval"> | Date | string;
    notes?: Prisma.StringNullableFilter<"Approval"> | string | null;
    transaction?: Prisma.XOR<Prisma.TransactionScalarRelationFilter, Prisma.TransactionWhereInput>;
};
export type ApprovalOrderByWithRelationInput = {
    id?: Prisma.SortOrder;
    transactionId?: Prisma.SortOrder;
    role?: Prisma.SortOrder;
    approvedBy?: Prisma.SortOrder;
    approvedAt?: Prisma.SortOrder;
    notes?: Prisma.SortOrderInput | Prisma.SortOrder;
    transaction?: Prisma.TransactionOrderByWithRelationInput;
};
export type ApprovalWhereUniqueInput = Prisma.AtLeast<{
    id?: string;
    AND?: Prisma.ApprovalWhereInput | Prisma.ApprovalWhereInput[];
    OR?: Prisma.ApprovalWhereInput[];
    NOT?: Prisma.ApprovalWhereInput | Prisma.ApprovalWhereInput[];
    transactionId?: Prisma.StringFilter<"Approval"> | string;
    role?: Prisma.EnumApprovalRoleFilter<"Approval"> | $Enums.ApprovalRole;
    approvedBy?: Prisma.StringFilter<"Approval"> | string;
    approvedAt?: Prisma.DateTimeFilter<"Approval"> | Date | string;
    notes?: Prisma.StringNullableFilter<"Approval"> | string | null;
    transaction?: Prisma.XOR<Prisma.TransactionScalarRelationFilter, Prisma.TransactionWhereInput>;
}, "id">;
export type ApprovalOrderByWithAggregationInput = {
    id?: Prisma.SortOrder;
    transactionId?: Prisma.SortOrder;
    role?: Prisma.SortOrder;
    approvedBy?: Prisma.SortOrder;
    approvedAt?: Prisma.SortOrder;
    notes?: Prisma.SortOrderInput | Prisma.SortOrder;
    _count?: Prisma.ApprovalCountOrderByAggregateInput;
    _max?: Prisma.ApprovalMaxOrderByAggregateInput;
    _min?: Prisma.ApprovalMinOrderByAggregateInput;
};
export type ApprovalScalarWhereWithAggregatesInput = {
    AND?: Prisma.ApprovalScalarWhereWithAggregatesInput | Prisma.ApprovalScalarWhereWithAggregatesInput[];
    OR?: Prisma.ApprovalScalarWhereWithAggregatesInput[];
    NOT?: Prisma.ApprovalScalarWhereWithAggregatesInput | Prisma.ApprovalScalarWhereWithAggregatesInput[];
    id?: Prisma.StringWithAggregatesFilter<"Approval"> | string;
    transactionId?: Prisma.StringWithAggregatesFilter<"Approval"> | string;
    role?: Prisma.EnumApprovalRoleWithAggregatesFilter<"Approval"> | $Enums.ApprovalRole;
    approvedBy?: Prisma.StringWithAggregatesFilter<"Approval"> | string;
    approvedAt?: Prisma.DateTimeWithAggregatesFilter<"Approval"> | Date | string;
    notes?: Prisma.StringNullableWithAggregatesFilter<"Approval"> | string | null;
};
export type ApprovalCreateInput = {
    id?: string;
    role: $Enums.ApprovalRole;
    approvedBy: string;
    approvedAt?: Date | string;
    notes?: string | null;
    transaction: Prisma.TransactionCreateNestedOneWithoutApprovalsInput;
};
export type ApprovalUncheckedCreateInput = {
    id?: string;
    transactionId: string;
    role: $Enums.ApprovalRole;
    approvedBy: string;
    approvedAt?: Date | string;
    notes?: string | null;
};
export type ApprovalUpdateInput = {
    id?: Prisma.StringFieldUpdateOperationsInput | string;
    role?: Prisma.EnumApprovalRoleFieldUpdateOperationsInput | $Enums.ApprovalRole;
    approvedBy?: Prisma.StringFieldUpdateOperationsInput | string;
    approvedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string;
    notes?: Prisma.NullableStringFieldUpdateOperationsInput | string | null;
    transaction?: Prisma.TransactionUpdateOneRequiredWithoutApprovalsNestedInput;
};
export type ApprovalUncheckedUpdateInput = {
    id?: Prisma.StringFieldUpdateOperationsInput | string;
    transactionId?: Prisma.StringFieldUpdateOperationsInput | string;
    role?: Prisma.EnumApprovalRoleFieldUpdateOperationsInput | $Enums.ApprovalRole;
    approvedBy?: Prisma.StringFieldUpdateOperationsInput | string;
    approvedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string;
    notes?: Prisma.NullableStringFieldUpdateOperationsInput | string | null;
};
export type ApprovalCreateManyInput = {
    id?: string;
    transactionId: string;
    role: $Enums.ApprovalRole;
    approvedBy: string;
    approvedAt?: Date | string;
    notes?: string | null;
};
export type ApprovalUpdateManyMutationInput = {
    id?: Prisma.StringFieldUpdateOperationsInput | string;
    role?: Prisma.EnumApprovalRoleFieldUpdateOperationsInput | $Enums.ApprovalRole;
    approvedBy?: Prisma.StringFieldUpdateOperationsInput | string;
    approvedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string;
    notes?: Prisma.NullableStringFieldUpdateOperationsInput | string | null;
};
export type ApprovalUncheckedUpdateManyInput = {
    id?: Prisma.StringFieldUpdateOperationsInput | string;
    transactionId?: Prisma.StringFieldUpdateOperationsInput | string;
    role?: Prisma.EnumApprovalRoleFieldUpdateOperationsInput | $Enums.ApprovalRole;
    approvedBy?: Prisma.StringFieldUpdateOperationsInput | string;
    approvedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string;
    notes?: Prisma.NullableStringFieldUpdateOperationsInput | string | null;
};
export type ApprovalListRelationFilter = {
    every?: Prisma.ApprovalWhereInput;
    some?: Prisma.ApprovalWhereInput;
    none?: Prisma.ApprovalWhereInput;
};
export type ApprovalOrderByRelationAggregateInput = {
    _count?: Prisma.SortOrder;
};
export type ApprovalCountOrderByAggregateInput = {
    id?: Prisma.SortOrder;
    transactionId?: Prisma.SortOrder;
    role?: Prisma.SortOrder;
    approvedBy?: Prisma.SortOrder;
    approvedAt?: Prisma.SortOrder;
    notes?: Prisma.SortOrder;
};
export type ApprovalMaxOrderByAggregateInput = {
    id?: Prisma.SortOrder;
    transactionId?: Prisma.SortOrder;
    role?: Prisma.SortOrder;
    approvedBy?: Prisma.SortOrder;
    approvedAt?: Prisma.SortOrder;
    notes?: Prisma.SortOrder;
};
export type ApprovalMinOrderByAggregateInput = {
    id?: Prisma.SortOrder;
    transactionId?: Prisma.SortOrder;
    role?: Prisma.SortOrder;
    approvedBy?: Prisma.SortOrder;
    approvedAt?: Prisma.SortOrder;
    notes?: Prisma.SortOrder;
};
export type ApprovalCreateNestedManyWithoutTransactionInput = {
    create?: Prisma.XOR<Prisma.ApprovalCreateWithoutTransactionInput, Prisma.ApprovalUncheckedCreateWithoutTransactionInput> | Prisma.ApprovalCreateWithoutTransactionInput[] | Prisma.ApprovalUncheckedCreateWithoutTransactionInput[];
    connectOrCreate?: Prisma.ApprovalCreateOrConnectWithoutTransactionInput | Prisma.ApprovalCreateOrConnectWithoutTransactionInput[];
    createMany?: Prisma.ApprovalCreateManyTransactionInputEnvelope;
    connect?: Prisma.ApprovalWhereUniqueInput | Prisma.ApprovalWhereUniqueInput[];
};
export type ApprovalUncheckedCreateNestedManyWithoutTransactionInput = {
    create?: Prisma.XOR<Prisma.ApprovalCreateWithoutTransactionInput, Prisma.ApprovalUncheckedCreateWithoutTransactionInput> | Prisma.ApprovalCreateWithoutTransactionInput[] | Prisma.ApprovalUncheckedCreateWithoutTransactionInput[];
    connectOrCreate?: Prisma.ApprovalCreateOrConnectWithoutTransactionInput | Prisma.ApprovalCreateOrConnectWithoutTransactionInput[];
    createMany?: Prisma.ApprovalCreateManyTransactionInputEnvelope;
    connect?: Prisma.ApprovalWhereUniqueInput | Prisma.ApprovalWhereUniqueInput[];
};
export type ApprovalUpdateManyWithoutTransactionNestedInput = {
    create?: Prisma.XOR<Prisma.ApprovalCreateWithoutTransactionInput, Prisma.ApprovalUncheckedCreateWithoutTransactionInput> | Prisma.ApprovalCreateWithoutTransactionInput[] | Prisma.ApprovalUncheckedCreateWithoutTransactionInput[];
    connectOrCreate?: Prisma.ApprovalCreateOrConnectWithoutTransactionInput | Prisma.ApprovalCreateOrConnectWithoutTransactionInput[];
    upsert?: Prisma.ApprovalUpsertWithWhereUniqueWithoutTransactionInput | Prisma.ApprovalUpsertWithWhereUniqueWithoutTransactionInput[];
    createMany?: Prisma.ApprovalCreateManyTransactionInputEnvelope;
    set?: Prisma.ApprovalWhereUniqueInput | Prisma.ApprovalWhereUniqueInput[];
    disconnect?: Prisma.ApprovalWhereUniqueInput | Prisma.ApprovalWhereUniqueInput[];
    delete?: Prisma.ApprovalWhereUniqueInput | Prisma.ApprovalWhereUniqueInput[];
    connect?: Prisma.ApprovalWhereUniqueInput | Prisma.ApprovalWhereUniqueInput[];
    update?: Prisma.ApprovalUpdateWithWhereUniqueWithoutTransactionInput | Prisma.ApprovalUpdateWithWhereUniqueWithoutTransactionInput[];
    updateMany?: Prisma.ApprovalUpdateManyWithWhereWithoutTransactionInput | Prisma.ApprovalUpdateManyWithWhereWithoutTransactionInput[];
    deleteMany?: Prisma.ApprovalScalarWhereInput | Prisma.ApprovalScalarWhereInput[];
};
export type ApprovalUncheckedUpdateManyWithoutTransactionNestedInput = {
    create?: Prisma.XOR<Prisma.ApprovalCreateWithoutTransactionInput, Prisma.ApprovalUncheckedCreateWithoutTransactionInput> | Prisma.ApprovalCreateWithoutTransactionInput[] | Prisma.ApprovalUncheckedCreateWithoutTransactionInput[];
    connectOrCreate?: Prisma.ApprovalCreateOrConnectWithoutTransactionInput | Prisma.ApprovalCreateOrConnectWithoutTransactionInput[];
    upsert?: Prisma.ApprovalUpsertWithWhereUniqueWithoutTransactionInput | Prisma.ApprovalUpsertWithWhereUniqueWithoutTransactionInput[];
    createMany?: Prisma.ApprovalCreateManyTransactionInputEnvelope;
    set?: Prisma.ApprovalWhereUniqueInput | Prisma.ApprovalWhereUniqueInput[];
    disconnect?: Prisma.ApprovalWhereUniqueInput | Prisma.ApprovalWhereUniqueInput[];
    delete?: Prisma.ApprovalWhereUniqueInput | Prisma.ApprovalWhereUniqueInput[];
    connect?: Prisma.ApprovalWhereUniqueInput | Prisma.ApprovalWhereUniqueInput[];
    update?: Prisma.ApprovalUpdateWithWhereUniqueWithoutTransactionInput | Prisma.ApprovalUpdateWithWhereUniqueWithoutTransactionInput[];
    updateMany?: Prisma.ApprovalUpdateManyWithWhereWithoutTransactionInput | Prisma.ApprovalUpdateManyWithWhereWithoutTransactionInput[];
    deleteMany?: Prisma.ApprovalScalarWhereInput | Prisma.ApprovalScalarWhereInput[];
};
export type EnumApprovalRoleFieldUpdateOperationsInput = {
    set?: $Enums.ApprovalRole;
};
export type ApprovalCreateWithoutTransactionInput = {
    id?: string;
    role: $Enums.ApprovalRole;
    approvedBy: string;
    approvedAt?: Date | string;
    notes?: string | null;
};
export type ApprovalUncheckedCreateWithoutTransactionInput = {
    id?: string;
    role: $Enums.ApprovalRole;
    approvedBy: string;
    approvedAt?: Date | string;
    notes?: string | null;
};
export type ApprovalCreateOrConnectWithoutTransactionInput = {
    where: Prisma.ApprovalWhereUniqueInput;
    create: Prisma.XOR<Prisma.ApprovalCreateWithoutTransactionInput, Prisma.ApprovalUncheckedCreateWithoutTransactionInput>;
};
export type ApprovalCreateManyTransactionInputEnvelope = {
    data: Prisma.ApprovalCreateManyTransactionInput | Prisma.ApprovalCreateManyTransactionInput[];
    skipDuplicates?: boolean;
};
export type ApprovalUpsertWithWhereUniqueWithoutTransactionInput = {
    where: Prisma.ApprovalWhereUniqueInput;
    update: Prisma.XOR<Prisma.ApprovalUpdateWithoutTransactionInput, Prisma.ApprovalUncheckedUpdateWithoutTransactionInput>;
    create: Prisma.XOR<Prisma.ApprovalCreateWithoutTransactionInput, Prisma.ApprovalUncheckedCreateWithoutTransactionInput>;
};
export type ApprovalUpdateWithWhereUniqueWithoutTransactionInput = {
    where: Prisma.ApprovalWhereUniqueInput;
    data: Prisma.XOR<Prisma.ApprovalUpdateWithoutTransactionInput, Prisma.ApprovalUncheckedUpdateWithoutTransactionInput>;
};
export type ApprovalUpdateManyWithWhereWithoutTransactionInput = {
    where: Prisma.ApprovalScalarWhereInput;
    data: Prisma.XOR<Prisma.ApprovalUpdateManyMutationInput, Prisma.ApprovalUncheckedUpdateManyWithoutTransactionInput>;
};
export type ApprovalScalarWhereInput = {
    AND?: Prisma.ApprovalScalarWhereInput | Prisma.ApprovalScalarWhereInput[];
    OR?: Prisma.ApprovalScalarWhereInput[];
    NOT?: Prisma.ApprovalScalarWhereInput | Prisma.ApprovalScalarWhereInput[];
    id?: Prisma.StringFilter<"Approval"> | string;
    transactionId?: Prisma.StringFilter<"Approval"> | string;
    role?: Prisma.EnumApprovalRoleFilter<"Approval"> | $Enums.ApprovalRole;
    approvedBy?: Prisma.StringFilter<"Approval"> | string;
    approvedAt?: Prisma.DateTimeFilter<"Approval"> | Date | string;
    notes?: Prisma.StringNullableFilter<"Approval"> | string | null;
};
export type ApprovalCreateManyTransactionInput = {
    id?: string;
    role: $Enums.ApprovalRole;
    approvedBy: string;
    approvedAt?: Date | string;
    notes?: string | null;
};
export type ApprovalUpdateWithoutTransactionInput = {
    id?: Prisma.StringFieldUpdateOperationsInput | string;
    role?: Prisma.EnumApprovalRoleFieldUpdateOperationsInput | $Enums.ApprovalRole;
    approvedBy?: Prisma.StringFieldUpdateOperationsInput | string;
    approvedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string;
    notes?: Prisma.NullableStringFieldUpdateOperationsInput | string | null;
};
export type ApprovalUncheckedUpdateWithoutTransactionInput = {
    id?: Prisma.StringFieldUpdateOperationsInput | string;
    role?: Prisma.EnumApprovalRoleFieldUpdateOperationsInput | $Enums.ApprovalRole;
    approvedBy?: Prisma.StringFieldUpdateOperationsInput | string;
    approvedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string;
    notes?: Prisma.NullableStringFieldUpdateOperationsInput | string | null;
};
export type ApprovalUncheckedUpdateManyWithoutTransactionInput = {
    id?: Prisma.StringFieldUpdateOperationsInput | string;
    role?: Prisma.EnumApprovalRoleFieldUpdateOperationsInput | $Enums.ApprovalRole;
    approvedBy?: Prisma.StringFieldUpdateOperationsInput | string;
    approvedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string;
    notes?: Prisma.NullableStringFieldUpdateOperationsInput | string | null;
};
export type ApprovalSelect<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = runtime.Types.Extensions.GetSelect<{
    id?: boolean;
    transactionId?: boolean;
    role?: boolean;
    approvedBy?: boolean;
    approvedAt?: boolean;
    notes?: boolean;
    transaction?: boolean | Prisma.TransactionDefaultArgs<ExtArgs>;
}, ExtArgs["result"]["approval"]>;
export type ApprovalSelectCreateManyAndReturn<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = runtime.Types.Extensions.GetSelect<{
    id?: boolean;
    transactionId?: boolean;
    role?: boolean;
    approvedBy?: boolean;
    approvedAt?: boolean;
    notes?: boolean;
    transaction?: boolean | Prisma.TransactionDefaultArgs<ExtArgs>;
}, ExtArgs["result"]["approval"]>;
export type ApprovalSelectUpdateManyAndReturn<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = runtime.Types.Extensions.GetSelect<{
    id?: boolean;
    transactionId?: boolean;
    role?: boolean;
    approvedBy?: boolean;
    approvedAt?: boolean;
    notes?: boolean;
    transaction?: boolean | Prisma.TransactionDefaultArgs<ExtArgs>;
}, ExtArgs["result"]["approval"]>;
export type ApprovalSelectScalar = {
    id?: boolean;
    transactionId?: boolean;
    role?: boolean;
    approvedBy?: boolean;
    approvedAt?: boolean;
    notes?: boolean;
};
export type ApprovalOmit<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = runtime.Types.Extensions.GetOmit<"id" | "transactionId" | "role" | "approvedBy" | "approvedAt" | "notes", ExtArgs["result"]["approval"]>;
export type ApprovalInclude<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {
    transaction?: boolean | Prisma.TransactionDefaultArgs<ExtArgs>;
};
export type ApprovalIncludeCreateManyAndReturn<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {
    transaction?: boolean | Prisma.TransactionDefaultArgs<ExtArgs>;
};
export type ApprovalIncludeUpdateManyAndReturn<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {
    transaction?: boolean | Prisma.TransactionDefaultArgs<ExtArgs>;
};
export type $ApprovalPayload<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {
    name: "Approval";
    objects: {
        transaction: Prisma.$TransactionPayload<ExtArgs>;
    };
    scalars: runtime.Types.Extensions.GetPayloadResult<{
        id: string;
        transactionId: string;
        role: $Enums.ApprovalRole;
        approvedBy: string;
        approvedAt: Date;
        notes: string | null;
    }, ExtArgs["result"]["approval"]>;
    composites: {};
};
export type ApprovalGetPayload<S extends boolean | null | undefined | ApprovalDefaultArgs> = runtime.Types.Result.GetResult<Prisma.$ApprovalPayload, S>;
export type ApprovalCountArgs<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = Omit<ApprovalFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
    select?: ApprovalCountAggregateInputType | true;
};
export interface ApprovalDelegate<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs, GlobalOmitOptions = {}> {
    [K: symbol]: {
        types: Prisma.TypeMap<ExtArgs>['model']['Approval'];
        meta: {
            name: 'Approval';
        };
    };
    findUnique<T extends ApprovalFindUniqueArgs>(args: Prisma.SelectSubset<T, ApprovalFindUniqueArgs<ExtArgs>>): Prisma.Prisma__ApprovalClient<runtime.Types.Result.GetResult<Prisma.$ApprovalPayload<ExtArgs>, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>;
    findUniqueOrThrow<T extends ApprovalFindUniqueOrThrowArgs>(args: Prisma.SelectSubset<T, ApprovalFindUniqueOrThrowArgs<ExtArgs>>): Prisma.Prisma__ApprovalClient<runtime.Types.Result.GetResult<Prisma.$ApprovalPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>;
    findFirst<T extends ApprovalFindFirstArgs>(args?: Prisma.SelectSubset<T, ApprovalFindFirstArgs<ExtArgs>>): Prisma.Prisma__ApprovalClient<runtime.Types.Result.GetResult<Prisma.$ApprovalPayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>;
    findFirstOrThrow<T extends ApprovalFindFirstOrThrowArgs>(args?: Prisma.SelectSubset<T, ApprovalFindFirstOrThrowArgs<ExtArgs>>): Prisma.Prisma__ApprovalClient<runtime.Types.Result.GetResult<Prisma.$ApprovalPayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>;
    findMany<T extends ApprovalFindManyArgs>(args?: Prisma.SelectSubset<T, ApprovalFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<runtime.Types.Result.GetResult<Prisma.$ApprovalPayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>;
    create<T extends ApprovalCreateArgs>(args: Prisma.SelectSubset<T, ApprovalCreateArgs<ExtArgs>>): Prisma.Prisma__ApprovalClient<runtime.Types.Result.GetResult<Prisma.$ApprovalPayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>;
    createMany<T extends ApprovalCreateManyArgs>(args?: Prisma.SelectSubset<T, ApprovalCreateManyArgs<ExtArgs>>): Prisma.PrismaPromise<Prisma.BatchPayload>;
    createManyAndReturn<T extends ApprovalCreateManyAndReturnArgs>(args?: Prisma.SelectSubset<T, ApprovalCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<runtime.Types.Result.GetResult<Prisma.$ApprovalPayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>;
    delete<T extends ApprovalDeleteArgs>(args: Prisma.SelectSubset<T, ApprovalDeleteArgs<ExtArgs>>): Prisma.Prisma__ApprovalClient<runtime.Types.Result.GetResult<Prisma.$ApprovalPayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>;
    update<T extends ApprovalUpdateArgs>(args: Prisma.SelectSubset<T, ApprovalUpdateArgs<ExtArgs>>): Prisma.Prisma__ApprovalClient<runtime.Types.Result.GetResult<Prisma.$ApprovalPayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>;
    deleteMany<T extends ApprovalDeleteManyArgs>(args?: Prisma.SelectSubset<T, ApprovalDeleteManyArgs<ExtArgs>>): Prisma.PrismaPromise<Prisma.BatchPayload>;
    updateMany<T extends ApprovalUpdateManyArgs>(args: Prisma.SelectSubset<T, ApprovalUpdateManyArgs<ExtArgs>>): Prisma.PrismaPromise<Prisma.BatchPayload>;
    updateManyAndReturn<T extends ApprovalUpdateManyAndReturnArgs>(args: Prisma.SelectSubset<T, ApprovalUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<runtime.Types.Result.GetResult<Prisma.$ApprovalPayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>;
    upsert<T extends ApprovalUpsertArgs>(args: Prisma.SelectSubset<T, ApprovalUpsertArgs<ExtArgs>>): Prisma.Prisma__ApprovalClient<runtime.Types.Result.GetResult<Prisma.$ApprovalPayload<ExtArgs>, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>;
    count<T extends ApprovalCountArgs>(args?: Prisma.Subset<T, ApprovalCountArgs>): Prisma.PrismaPromise<T extends runtime.Types.Utils.Record<'select', any> ? T['select'] extends true ? number : Prisma.GetScalarType<T['select'], ApprovalCountAggregateOutputType> : number>;
    aggregate<T extends ApprovalAggregateArgs>(args: Prisma.Subset<T, ApprovalAggregateArgs>): Prisma.PrismaPromise<GetApprovalAggregateType<T>>;
    groupBy<T extends ApprovalGroupByArgs, HasSelectOrTake extends Prisma.Or<Prisma.Extends<'skip', Prisma.Keys<T>>, Prisma.Extends<'take', Prisma.Keys<T>>>, OrderByArg extends Prisma.True extends HasSelectOrTake ? {
        orderBy: ApprovalGroupByArgs['orderBy'];
    } : {
        orderBy?: ApprovalGroupByArgs['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, ApprovalGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetApprovalGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>;
    readonly fields: ApprovalFieldRefs;
}
export interface Prisma__ApprovalClient<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>;
    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 ApprovalFieldRefs {
    readonly id: Prisma.FieldRef<"Approval", 'String'>;
    readonly transactionId: Prisma.FieldRef<"Approval", 'String'>;
    readonly role: Prisma.FieldRef<"Approval", 'ApprovalRole'>;
    readonly approvedBy: Prisma.FieldRef<"Approval", 'String'>;
    readonly approvedAt: Prisma.FieldRef<"Approval", 'DateTime'>;
    readonly notes: Prisma.FieldRef<"Approval", 'String'>;
}
export type ApprovalFindUniqueArgs<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {
    select?: Prisma.ApprovalSelect<ExtArgs> | null;
    omit?: Prisma.ApprovalOmit<ExtArgs> | null;
    include?: Prisma.ApprovalInclude<ExtArgs> | null;
    where: Prisma.ApprovalWhereUniqueInput;
};
export type ApprovalFindUniqueOrThrowArgs<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {
    select?: Prisma.ApprovalSelect<ExtArgs> | null;
    omit?: Prisma.ApprovalOmit<ExtArgs> | null;
    include?: Prisma.ApprovalInclude<ExtArgs> | null;
    where: Prisma.ApprovalWhereUniqueInput;
};
export type ApprovalFindFirstArgs<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {
    select?: Prisma.ApprovalSelect<ExtArgs> | null;
    omit?: Prisma.ApprovalOmit<ExtArgs> | null;
    include?: Prisma.ApprovalInclude<ExtArgs> | null;
    where?: Prisma.ApprovalWhereInput;
    orderBy?: Prisma.ApprovalOrderByWithRelationInput | Prisma.ApprovalOrderByWithRelationInput[];
    cursor?: Prisma.ApprovalWhereUniqueInput;
    take?: number;
    skip?: number;
    distinct?: Prisma.ApprovalScalarFieldEnum | Prisma.ApprovalScalarFieldEnum[];
};
export type ApprovalFindFirstOrThrowArgs<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {
    select?: Prisma.ApprovalSelect<ExtArgs> | null;
    omit?: Prisma.ApprovalOmit<ExtArgs> | null;
    include?: Prisma.ApprovalInclude<ExtArgs> | null;
    where?: Prisma.ApprovalWhereInput;
    orderBy?: Prisma.ApprovalOrderByWithRelationInput | Prisma.ApprovalOrderByWithRelationInput[];
    cursor?: Prisma.ApprovalWhereUniqueInput;
    take?: number;
    skip?: number;
    distinct?: Prisma.ApprovalScalarFieldEnum | Prisma.ApprovalScalarFieldEnum[];
};
export type ApprovalFindManyArgs<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {
    select?: Prisma.ApprovalSelect<ExtArgs> | null;
    omit?: Prisma.ApprovalOmit<ExtArgs> | null;
    include?: Prisma.ApprovalInclude<ExtArgs> | null;
    where?: Prisma.ApprovalWhereInput;
    orderBy?: Prisma.ApprovalOrderByWithRelationInput | Prisma.ApprovalOrderByWithRelationInput[];
    cursor?: Prisma.ApprovalWhereUniqueInput;
    take?: number;
    skip?: number;
    distinct?: Prisma.ApprovalScalarFieldEnum | Prisma.ApprovalScalarFieldEnum[];
};
export type ApprovalCreateArgs<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {
    select?: Prisma.ApprovalSelect<ExtArgs> | null;
    omit?: Prisma.ApprovalOmit<ExtArgs> | null;
    include?: Prisma.ApprovalInclude<ExtArgs> | null;
    data: Prisma.XOR<Prisma.ApprovalCreateInput, Prisma.ApprovalUncheckedCreateInput>;
};
export type ApprovalCreateManyArgs<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {
    data: Prisma.ApprovalCreateManyInput | Prisma.ApprovalCreateManyInput[];
    skipDuplicates?: boolean;
};
export type ApprovalCreateManyAndReturnArgs<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {
    select?: Prisma.ApprovalSelectCreateManyAndReturn<ExtArgs> | null;
    omit?: Prisma.ApprovalOmit<ExtArgs> | null;
    data: Prisma.ApprovalCreateManyInput | Prisma.ApprovalCreateManyInput[];
    skipDuplicates?: boolean;
    include?: Prisma.ApprovalIncludeCreateManyAndReturn<ExtArgs> | null;
};
export type ApprovalUpdateArgs<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {
    select?: Prisma.ApprovalSelect<ExtArgs> | null;
    omit?: Prisma.ApprovalOmit<ExtArgs> | null;
    include?: Prisma.ApprovalInclude<ExtArgs> | null;
    data: Prisma.XOR<Prisma.ApprovalUpdateInput, Prisma.ApprovalUncheckedUpdateInput>;
    where: Prisma.ApprovalWhereUniqueInput;
};
export type ApprovalUpdateManyArgs<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {
    data: Prisma.XOR<Prisma.ApprovalUpdateManyMutationInput, Prisma.ApprovalUncheckedUpdateManyInput>;
    where?: Prisma.ApprovalWhereInput;
    limit?: number;
};
export type ApprovalUpdateManyAndReturnArgs<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {
    select?: Prisma.ApprovalSelectUpdateManyAndReturn<ExtArgs> | null;
    omit?: Prisma.ApprovalOmit<ExtArgs> | null;
    data: Prisma.XOR<Prisma.ApprovalUpdateManyMutationInput, Prisma.ApprovalUncheckedUpdateManyInput>;
    where?: Prisma.ApprovalWhereInput;
    limit?: number;
    include?: Prisma.ApprovalIncludeUpdateManyAndReturn<ExtArgs> | null;
};
export type ApprovalUpsertArgs<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {
    select?: Prisma.ApprovalSelect<ExtArgs> | null;
    omit?: Prisma.ApprovalOmit<ExtArgs> | null;
    include?: Prisma.ApprovalInclude<ExtArgs> | null;
    where: Prisma.ApprovalWhereUniqueInput;
    create: Prisma.XOR<Prisma.ApprovalCreateInput, Prisma.ApprovalUncheckedCreateInput>;
    update: Prisma.XOR<Prisma.ApprovalUpdateInput, Prisma.ApprovalUncheckedUpdateInput>;
};
export type ApprovalDeleteArgs<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {
    select?: Prisma.ApprovalSelect<ExtArgs> | null;
    omit?: Prisma.ApprovalOmit<ExtArgs> | null;
    include?: Prisma.ApprovalInclude<ExtArgs> | null;
    where: Prisma.ApprovalWhereUniqueInput;
};
export type ApprovalDeleteManyArgs<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {
    where?: Prisma.ApprovalWhereInput;
    limit?: number;
};
export type ApprovalDefaultArgs<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {
    select?: Prisma.ApprovalSelect<ExtArgs> | null;
    omit?: Prisma.ApprovalOmit<ExtArgs> | null;
    include?: Prisma.ApprovalInclude<ExtArgs> | null;
};
export {};
