import { z } from "zod";
export declare const CashSessionCountEntrySchema: z.ZodObject<{
    denomination: z.ZodNumber;
    quantity: z.ZodNumber;
    kind: z.ZodEnum<{
        coin: "coin";
        bill: "bill";
    }>;
}, z.core.$strip>;
export declare const CashSessionCountBreakdownSchema: z.ZodObject<{
    entries: z.ZodDefault<z.ZodArray<z.ZodObject<{
        denomination: z.ZodNumber;
        quantity: z.ZodNumber;
        kind: z.ZodEnum<{
            coin: "coin";
            bill: "bill";
        }>;
    }, z.core.$strip>>>;
    freeAmount: z.ZodDefault<z.ZodNumber>;
}, z.core.$strip>;
export declare const CreateCashSessionDraftSchema: z.ZodObject<{
    openingCash: z.ZodOptional<z.ZodNumber>;
    counting: z.ZodOptional<z.ZodObject<{
        entries: z.ZodDefault<z.ZodArray<z.ZodObject<{
            denomination: z.ZodNumber;
            quantity: z.ZodNumber;
            kind: z.ZodEnum<{
                coin: "coin";
                bill: "bill";
            }>;
        }, z.core.$strip>>>;
        freeAmount: z.ZodDefault<z.ZodNumber>;
    }, z.core.$strip>>;
    stationId: z.ZodString;
}, z.core.$strip>;
export declare const OpenCashSessionSchema: z.ZodObject<{
    openingCash: z.ZodOptional<z.ZodNumber>;
    counting: z.ZodOptional<z.ZodObject<{
        entries: z.ZodDefault<z.ZodArray<z.ZodObject<{
            denomination: z.ZodNumber;
            quantity: z.ZodNumber;
            kind: z.ZodEnum<{
                coin: "coin";
                bill: "bill";
            }>;
        }, z.core.$strip>>>;
        freeAmount: z.ZodDefault<z.ZodNumber>;
    }, z.core.$strip>>;
    stationId: z.ZodString;
}, z.core.$strip>;
export declare const FinalizeCashSessionDraftSchema: z.ZodObject<{
    openingCash: z.ZodOptional<z.ZodNumber>;
    counting: z.ZodOptional<z.ZodObject<{
        entries: z.ZodDefault<z.ZodArray<z.ZodObject<{
            denomination: z.ZodNumber;
            quantity: z.ZodNumber;
            kind: z.ZodEnum<{
                coin: "coin";
                bill: "bill";
            }>;
        }, z.core.$strip>>>;
        freeAmount: z.ZodDefault<z.ZodNumber>;
    }, z.core.$strip>>;
}, z.core.$strip>;
export declare const CloseCashSessionSchema: z.ZodObject<{
    counting: z.ZodObject<{
        entries: z.ZodDefault<z.ZodArray<z.ZodObject<{
            denomination: z.ZodNumber;
            quantity: z.ZodNumber;
            kind: z.ZodEnum<{
                coin: "coin";
                bill: "bill";
            }>;
        }, z.core.$strip>>>;
        freeAmount: z.ZodDefault<z.ZodNumber>;
    }, z.core.$strip>;
    confirmClose: z.ZodLiteral<true>;
    confirmDifference: z.ZodOptional<z.ZodBoolean>;
}, z.core.$strip>;
export declare const CashSessionHistoryQuerySchema: z.ZodObject<{
    stationId: z.ZodOptional<z.ZodString>;
    status: z.ZodOptional<z.ZodEnum<{
        OPEN: "OPEN";
        CLOSED: "CLOSED";
    }>>;
    limit: z.ZodOptional<z.ZodCoercedNumber<unknown>>;
}, z.core.$strip>;
export declare const UpdateCashSessionSchema: z.ZodObject<{
    openingCash: z.ZodOptional<z.ZodNumber>;
    counting: z.ZodOptional<z.ZodObject<{
        entries: z.ZodDefault<z.ZodArray<z.ZodObject<{
            denomination: z.ZodNumber;
            quantity: z.ZodNumber;
            kind: z.ZodEnum<{
                coin: "coin";
                bill: "bill";
            }>;
        }, z.core.$strip>>>;
        freeAmount: z.ZodDefault<z.ZodNumber>;
    }, z.core.$strip>>;
}, z.core.$strip>;
export declare const CreateCashSessionOperationSchema: z.ZodObject<{
    type: z.ZodEnum<{
        MANUAL_IN: "MANUAL_IN";
        MANUAL_OUT: "MANUAL_OUT";
    }>;
    amount: z.ZodNumber;
    source: z.ZodString;
    note: z.ZodOptional<z.ZodString>;
}, z.core.$strip>;
export type OpenCashSessionInput = z.infer<typeof OpenCashSessionSchema>;
export type CreateCashSessionDraftInput = z.infer<typeof CreateCashSessionDraftSchema>;
export type FinalizeCashSessionDraftInput = z.infer<typeof FinalizeCashSessionDraftSchema>;
export type CloseCashSessionInput = z.infer<typeof CloseCashSessionSchema>;
export type UpdateCashSessionInput = z.infer<typeof UpdateCashSessionSchema>;
export type CreateCashSessionOperationInput = z.infer<typeof CreateCashSessionOperationSchema>;
export type CashSessionHistoryQueryInput = z.infer<typeof CashSessionHistoryQuerySchema>;
export type CashSessionCountBreakdownInput = z.infer<typeof CashSessionCountBreakdownSchema>;
export type CashSessionCountEntryInput = z.infer<typeof CashSessionCountEntrySchema>;
