import { z } from 'zod';
import { PaymentState } from './enums';
export declare const PaymentSortOptions: {
    readonly ID: "id";
    readonly AMOUNT: "amount";
    readonly PAYMENT_TYPE: "paymentType";
    readonly CREATED_AT: "createdAt";
    readonly COMPLETED_AT: "completedAt";
    readonly ORDER_ID: "orderId";
};
export declare const PaymentSchema: z.ZodObject<{
    id: z.ZodNumber;
    amount: z.ZodNumber;
    tax: z.ZodDefault<z.ZodNumber>;
    tip: z.ZodDefault<z.ZodNumber>;
    serviceCharge: z.ZodDefault<z.ZodNumber>;
    paymentType: z.ZodEffects<z.ZodNativeEnum<{
        readonly CASH: "CASH";
        readonly CREDIT_CARD: "CREDIT_CARD";
        readonly DEBIT_CARD: "DEBIT_CARD";
    }>, "CASH" | "CREDIT_CARD" | "DEBIT_CARD", unknown>;
    createdAt: z.ZodNullable<z.ZodDate>;
    completedAt: z.ZodNullable<z.ZodDate>;
    orderId: z.ZodNumber;
    status: z.ZodEffects<z.ZodNativeEnum<{
        readonly NONE: "NONE";
        readonly PAID: "PAID";
        readonly REFUNDED: "REFUNDED";
        readonly CANCELLED: "CANCELLED";
        readonly PENDING: "PENDING";
    }>, "PENDING" | "CANCELLED" | "NONE" | "PAID" | "REFUNDED", unknown>;
}, "strip", z.ZodTypeAny, {
    status: "PENDING" | "CANCELLED" | "NONE" | "PAID" | "REFUNDED";
    id: number;
    createdAt: Date | null;
    tip: number;
    amount: number;
    paymentType: "CASH" | "CREDIT_CARD" | "DEBIT_CARD";
    completedAt: Date | null;
    orderId: number;
    tax: number;
    serviceCharge: number;
}, {
    id: number;
    createdAt: Date | null;
    amount: number;
    completedAt: Date | null;
    orderId: number;
    status?: unknown;
    tip?: number | undefined;
    paymentType?: unknown;
    tax?: number | undefined;
    serviceCharge?: number | undefined;
}>;
export declare const PartialPaymentSchema: z.ZodObject<{
    id: z.ZodOptional<z.ZodNumber>;
    amount: z.ZodOptional<z.ZodNumber>;
    tax: z.ZodOptional<z.ZodDefault<z.ZodNumber>>;
    tip: z.ZodOptional<z.ZodDefault<z.ZodNumber>>;
    serviceCharge: z.ZodOptional<z.ZodDefault<z.ZodNumber>>;
    paymentType: z.ZodOptional<z.ZodEffects<z.ZodNativeEnum<{
        readonly CASH: "CASH";
        readonly CREDIT_CARD: "CREDIT_CARD";
        readonly DEBIT_CARD: "DEBIT_CARD";
    }>, "CASH" | "CREDIT_CARD" | "DEBIT_CARD", unknown>>;
    createdAt: z.ZodOptional<z.ZodNullable<z.ZodDate>>;
    completedAt: z.ZodOptional<z.ZodNullable<z.ZodDate>>;
    orderId: z.ZodOptional<z.ZodNumber>;
    status: z.ZodOptional<z.ZodEffects<z.ZodNativeEnum<{
        readonly NONE: "NONE";
        readonly PAID: "PAID";
        readonly REFUNDED: "REFUNDED";
        readonly CANCELLED: "CANCELLED";
        readonly PENDING: "PENDING";
    }>, "PENDING" | "CANCELLED" | "NONE" | "PAID" | "REFUNDED", unknown>>;
}, "strip", z.ZodTypeAny, {
    status?: "PENDING" | "CANCELLED" | "NONE" | "PAID" | "REFUNDED" | undefined;
    id?: number | undefined;
    createdAt?: Date | null | undefined;
    tip?: number | undefined;
    amount?: number | undefined;
    paymentType?: "CASH" | "CREDIT_CARD" | "DEBIT_CARD" | undefined;
    completedAt?: Date | null | undefined;
    orderId?: number | undefined;
    tax?: number | undefined;
    serviceCharge?: number | undefined;
}, {
    status?: unknown;
    id?: number | undefined;
    createdAt?: Date | null | undefined;
    tip?: number | undefined;
    amount?: number | undefined;
    paymentType?: unknown;
    completedAt?: Date | null | undefined;
    orderId?: number | undefined;
    tax?: number | undefined;
    serviceCharge?: number | undefined;
}>;
export declare const PaymentSearchSchema: z.ZodObject<z.objectUtil.extendShape<{
    id: z.ZodOptional<z.ZodNumber>;
    amount: z.ZodOptional<z.ZodNumber>;
    tax: z.ZodOptional<z.ZodDefault<z.ZodNumber>>;
    tip: z.ZodOptional<z.ZodDefault<z.ZodNumber>>;
    serviceCharge: z.ZodOptional<z.ZodDefault<z.ZodNumber>>;
    paymentType: z.ZodOptional<z.ZodEffects<z.ZodNativeEnum<{
        readonly CASH: "CASH";
        readonly CREDIT_CARD: "CREDIT_CARD";
        readonly DEBIT_CARD: "DEBIT_CARD";
    }>, "CASH" | "CREDIT_CARD" | "DEBIT_CARD", unknown>>;
    createdAt: z.ZodOptional<z.ZodNullable<z.ZodDate>>;
    completedAt: z.ZodOptional<z.ZodNullable<z.ZodDate>>;
    orderId: z.ZodOptional<z.ZodNumber>;
    status: z.ZodOptional<z.ZodEffects<z.ZodNativeEnum<{
        readonly NONE: "NONE";
        readonly PAID: "PAID";
        readonly REFUNDED: "REFUNDED";
        readonly CANCELLED: "CANCELLED";
        readonly PENDING: "PENDING";
    }>, "PENDING" | "CANCELLED" | "NONE" | "PAID" | "REFUNDED", unknown>>;
}, {
    page: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
    pageSize: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
    sortBy: z.ZodDefault<z.ZodEnum<[string, ...string[]]>>;
    sortOrder: z.ZodDefault<z.ZodEnum<["asc", "desc"]>>;
}>, "strip", z.ZodTypeAny, {
    page: number;
    pageSize: number;
    sortOrder: "asc" | "desc";
    sortBy: string;
    status?: "PENDING" | "CANCELLED" | "NONE" | "PAID" | "REFUNDED" | undefined;
    id?: number | undefined;
    createdAt?: Date | null | undefined;
    tip?: number | undefined;
    amount?: number | undefined;
    paymentType?: "CASH" | "CREDIT_CARD" | "DEBIT_CARD" | undefined;
    completedAt?: Date | null | undefined;
    orderId?: number | undefined;
    tax?: number | undefined;
    serviceCharge?: number | undefined;
}, {
    status?: unknown;
    page?: number | undefined;
    pageSize?: number | undefined;
    sortOrder?: "asc" | "desc" | undefined;
    id?: number | undefined;
    createdAt?: Date | null | undefined;
    sortBy?: string | undefined;
    tip?: number | undefined;
    amount?: number | undefined;
    paymentType?: unknown;
    completedAt?: Date | null | undefined;
    orderId?: number | undefined;
    tax?: number | undefined;
    serviceCharge?: number | undefined;
}>;
export declare const RefundSchema: z.ZodObject<{
    reason: z.ZodString;
    createdAt: z.ZodDefault<z.ZodOptional<z.ZodDate>>;
}, "strip", z.ZodTypeAny, {
    createdAt: Date;
    reason: string;
}, {
    reason: string;
    createdAt?: Date | undefined;
}>;
export type PaymentDTO = z.infer<typeof PaymentSchema>;
export type PaymentListDTO = {
    payments: PaymentDTO[];
    totalCount: number;
    page: number;
    pageSize: number;
    totalPages: number;
};
export type PaymentStatusType = (typeof PaymentState)[keyof typeof PaymentState];
export type PaymentStatusDTO = PaymentState;
export type PaymentSearchCriteria = z.infer<typeof PaymentSearchSchema>;
export type RefundDTO = z.infer<typeof RefundSchema>;
//# sourceMappingURL=payment.dto.d.ts.map