import * as runtime from "@prisma/client/runtime/client";
import type * as Prisma from "./prismaNamespace";
export type LogOptions<ClientOptions extends Prisma.PrismaClientOptions> = 'log' extends keyof ClientOptions ? ClientOptions['log'] extends Array<Prisma.LogLevel | Prisma.LogDefinition> ? Prisma.GetEvents<ClientOptions['log']> : never : never;
export interface PrismaClientConstructor {
    new <Options extends Prisma.PrismaClientOptions = Prisma.PrismaClientOptions, LogOpts extends LogOptions<Options> = LogOptions<Options>, OmitOpts extends Prisma.PrismaClientOptions['omit'] = Options extends {
        omit: infer U;
    } ? U : Prisma.PrismaClientOptions['omit'], ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs>(options: Prisma.Subset<Options, Prisma.PrismaClientOptions>): PrismaClient<LogOpts, OmitOpts, ExtArgs>;
}
export interface PrismaClient<in LogOpts extends Prisma.LogLevel = never, in out OmitOpts extends Prisma.PrismaClientOptions['omit'] = undefined, in out ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> {
    [K: symbol]: {
        types: Prisma.TypeMap<ExtArgs>['other'];
    };
    $on<V extends LogOpts>(eventType: V, callback: (event: V extends 'query' ? Prisma.QueryEvent : Prisma.LogEvent) => void): PrismaClient;
    $connect(): runtime.Types.Utils.JsPromise<void>;
    $disconnect(): runtime.Types.Utils.JsPromise<void>;
    $executeRaw<T = unknown>(query: TemplateStringsArray | Prisma.Sql, ...values: any[]): Prisma.PrismaPromise<number>;
    $executeRawUnsafe<T = unknown>(query: string, ...values: any[]): Prisma.PrismaPromise<number>;
    $queryRaw<T = unknown>(query: TemplateStringsArray | Prisma.Sql, ...values: any[]): Prisma.PrismaPromise<T>;
    $queryRawUnsafe<T = unknown>(query: string, ...values: any[]): Prisma.PrismaPromise<T>;
    $transaction<P extends Prisma.PrismaPromise<any>[]>(arg: [...P], options?: {
        isolationLevel?: Prisma.TransactionIsolationLevel;
    }): runtime.Types.Utils.JsPromise<runtime.Types.Utils.UnwrapTuple<P>>;
    $transaction<R>(fn: (prisma: Omit<PrismaClient, runtime.ITXClientDenyList>) => runtime.Types.Utils.JsPromise<R>, options?: {
        maxWait?: number;
        timeout?: number;
        isolationLevel?: Prisma.TransactionIsolationLevel;
    }): runtime.Types.Utils.JsPromise<R>;
    $extends: runtime.Types.Extensions.ExtendsHook<"extends", Prisma.TypeMapCb<OmitOpts>, ExtArgs, runtime.Types.Utils.Call<Prisma.TypeMapCb<OmitOpts>, {
        extArgs: ExtArgs;
    }>>;
    get user(): Prisma.UserDelegate<ExtArgs, {
        omit: OmitOpts;
    }>;
    get role(): Prisma.RoleDelegate<ExtArgs, {
        omit: OmitOpts;
    }>;
    get branch(): Prisma.BranchDelegate<ExtArgs, {
        omit: OmitOpts;
    }>;
    get userBranch(): Prisma.UserBranchDelegate<ExtArgs, {
        omit: OmitOpts;
    }>;
    get headerSetting(): Prisma.HeaderSettingDelegate<ExtArgs, {
        omit: OmitOpts;
    }>;
    get detailSetting(): Prisma.DetailSettingDelegate<ExtArgs, {
        omit: OmitOpts;
    }>;
    get bank(): Prisma.BankDelegate<ExtArgs, {
        omit: OmitOpts;
    }>;
    get customer(): Prisma.CustomerDelegate<ExtArgs, {
        omit: OmitOpts;
    }>;
    get transaction(): Prisma.TransactionDelegate<ExtArgs, {
        omit: OmitOpts;
    }>;
    get transactionItem(): Prisma.TransactionItemDelegate<ExtArgs, {
        omit: OmitOpts;
    }>;
    get tempPhoto(): Prisma.TempPhotoDelegate<ExtArgs, {
        omit: OmitOpts;
    }>;
    get transactionItemPhoto(): Prisma.TransactionItemPhotoDelegate<ExtArgs, {
        omit: OmitOpts;
    }>;
    get itemType(): Prisma.ItemTypeDelegate<ExtArgs, {
        omit: OmitOpts;
    }>;
    get pricingHeader(): Prisma.PricingHeaderDelegate<ExtArgs, {
        omit: OmitOpts;
    }>;
    get pricingDetail(): Prisma.PricingDetailDelegate<ExtArgs, {
        omit: OmitOpts;
    }>;
    get transactionItemDoc(): Prisma.TransactionItemDocDelegate<ExtArgs, {
        omit: OmitOpts;
    }>;
    get transactionDoc(): Prisma.TransactionDocDelegate<ExtArgs, {
        omit: OmitOpts;
    }>;
    get approval(): Prisma.ApprovalDelegate<ExtArgs, {
        omit: OmitOpts;
    }>;
    get payment(): Prisma.PaymentDelegate<ExtArgs, {
        omit: OmitOpts;
    }>;
    get transactionSnapshot(): Prisma.TransactionSnapshotDelegate<ExtArgs, {
        omit: OmitOpts;
    }>;
    get note(): Prisma.NoteDelegate<ExtArgs, {
        omit: OmitOpts;
    }>;
    get txnRunum(): Prisma.TxnRunumDelegate<ExtArgs, {
        omit: OmitOpts;
    }>;
    get auditLog(): Prisma.AuditLogDelegate<ExtArgs, {
        omit: OmitOpts;
    }>;
}
export declare function getPrismaClientClass(): PrismaClientConstructor;
