import { z } from "zod";
export declare const CreatePromoCodeSchema: z.ZodObject<{
    code: z.ZodString;
    label: z.ZodOptional<z.ZodString>;
    discountType: z.ZodEnum<{
        PERCENTAGE: "PERCENTAGE";
        FIXED_AMOUNT: "FIXED_AMOUNT";
        FREE_PRODUCT: "FREE_PRODUCT";
    }>;
    discountValue: z.ZodNumber;
    targetProductId: z.ZodOptional<z.ZodString>;
    targetCategoryId: z.ZodOptional<z.ZodString>;
    maxUses: z.ZodOptional<z.ZodNumber>;
    maxUsesPerOrder: z.ZodDefault<z.ZodNumber>;
    startsAt: z.ZodOptional<z.ZodString>;
    expiresAt: z.ZodOptional<z.ZodString>;
}, z.core.$strip>;
export declare const UpdatePromoCodeSchema: z.ZodObject<{
    label: z.ZodOptional<z.ZodString>;
    discountValue: z.ZodOptional<z.ZodNumber>;
    maxUses: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
    maxUsesPerOrder: z.ZodOptional<z.ZodNumber>;
    startsAt: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    expiresAt: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    active: z.ZodOptional<z.ZodBoolean>;
}, z.core.$strip>;
export declare const ApplyPromoCodeSchema: z.ZodObject<{
    code: z.ZodString;
}, z.core.$strip>;
export type CreatePromoCodeInput = z.infer<typeof CreatePromoCodeSchema>;
export type UpdatePromoCodeInput = z.infer<typeof UpdatePromoCodeSchema>;
export type ApplyPromoCodeInput = z.infer<typeof ApplyPromoCodeSchema>;
