import { z } from 'zod';
import { BaseResourceSchema } from './base.js';
export declare const couponResourceSettingSchema: z.ZodObject<{
    type: z.ZodEnum<["coupon", "exchange"]>;
    name: z.ZodString;
    expType: z.ZodDefault<z.ZodEnum<["expAt", "expDay", "endOfPeriod"]>>;
    expDay: z.ZodOptional<z.ZodNumber>;
    expAt: z.ZodOptional<z.ZodDate>;
    endOfPeriodUnit: z.ZodOptional<z.ZodEnum<["day", "week", "month", "quarter", "year"]>>;
    showMinute: z.ZodOptional<z.ZodNumber>;
    notice: z.ZodOptional<z.ZodString>;
    exchangeLink: z.ZodOptional<z.ZodString>;
    exchangeType: z.ZodOptional<z.ZodEnum<["share", "single"]>>;
    systemRedeem: z.ZodDefault<z.ZodBoolean>;
    sentCount: z.ZodDefault<z.ZodNumber>;
    firstSentLimit: z.ZodOptional<z.ZodNumber>;
    sentLimit: z.ZodOptional<z.ZodNumber>;
    extraStatus: z.ZodOptional<z.ZodObject<{
        opentixEcouponId: z.ZodOptional<z.ZodString>;
        opentixIsDisabled: z.ZodOptional<z.ZodBoolean>;
        pospalEcouponId: z.ZodOptional<z.ZodString>;
        pospalIsDisabled: z.ZodOptional<z.ZodBoolean>;
    }, "strip", z.ZodTypeAny, {
        opentixEcouponId?: string | undefined;
        opentixIsDisabled?: boolean | undefined;
        pospalEcouponId?: string | undefined;
        pospalIsDisabled?: boolean | undefined;
    }, {
        opentixEcouponId?: string | undefined;
        opentixIsDisabled?: boolean | undefined;
        pospalEcouponId?: string | undefined;
        pospalIsDisabled?: boolean | undefined;
    }>>;
    extraSetting: z.ZodOptional<z.ZodObject<{
        openTixConfig: z.ZodOptional<z.ZodObject<{
            startTime: z.ZodDate;
            endTime: z.ZodDate;
            currentDiscount: z.ZodOptional<z.ZodNumber>;
            currentPrice: z.ZodOptional<z.ZodNumber>;
            quantityPerMember: z.ZodNumber;
            priceMinLimit: z.ZodOptional<z.ZodNumber>;
            priceMaxLimit: z.ZodOptional<z.ZodNumber>;
            description: z.ZodOptional<z.ZodString>;
            note: z.ZodOptional<z.ZodString>;
            organizers: z.ZodArray<z.ZodString, "many">;
            programs: z.ZodArray<z.ZodString, "many">;
            events: z.ZodArray<z.ZodString, "many">;
        }, "strip", z.ZodTypeAny, {
            startTime: Date;
            endTime: Date;
            quantityPerMember: number;
            organizers: string[];
            programs: string[];
            events: string[];
            description?: string | undefined;
            currentDiscount?: number | undefined;
            currentPrice?: number | undefined;
            priceMinLimit?: number | undefined;
            priceMaxLimit?: number | undefined;
            note?: string | undefined;
        }, {
            startTime: Date;
            endTime: Date;
            quantityPerMember: number;
            organizers: string[];
            programs: string[];
            events: string[];
            description?: string | undefined;
            currentDiscount?: number | undefined;
            currentPrice?: number | undefined;
            priceMinLimit?: number | undefined;
            priceMaxLimit?: number | undefined;
            note?: string | undefined;
        }>>;
        posPalConfig: z.ZodOptional<z.ZodObject<{
            couponDataHash: z.ZodString;
            startDate: z.ZodDate;
            endDate: z.ZodDate;
            description: z.ZodOptional<z.ZodString>;
            beginDays: z.ZodNumber;
            avaliableDays: z.ZodNumber;
            avaliableQuantity: z.ZodNumber;
            usedQuantity: z.ZodNumber;
            createdQuantity: z.ZodNumber;
            usageLimitType: z.ZodOptional<z.ZodString>;
            usageLimitTimes: z.ZodNumber;
            usageLimitAmountType: z.ZodOptional<z.ZodBoolean>;
            usageLimitAmount: z.ZodNumber;
            makeStartDate: z.ZodDate;
            makeEndDate: z.ZodDate;
        }, "strip", z.ZodTypeAny, {
            couponDataHash: string;
            startDate: Date;
            endDate: Date;
            beginDays: number;
            avaliableDays: number;
            avaliableQuantity: number;
            usedQuantity: number;
            createdQuantity: number;
            usageLimitTimes: number;
            usageLimitAmount: number;
            makeStartDate: Date;
            makeEndDate: Date;
            description?: string | undefined;
            usageLimitType?: string | undefined;
            usageLimitAmountType?: boolean | undefined;
        }, {
            couponDataHash: string;
            startDate: Date;
            endDate: Date;
            beginDays: number;
            avaliableDays: number;
            avaliableQuantity: number;
            usedQuantity: number;
            createdQuantity: number;
            usageLimitTimes: number;
            usageLimitAmount: number;
            makeStartDate: Date;
            makeEndDate: Date;
            description?: string | undefined;
            usageLimitType?: string | undefined;
            usageLimitAmountType?: boolean | undefined;
        }>>;
    }, "strip", z.ZodTypeAny, {
        openTixConfig?: {
            startTime: Date;
            endTime: Date;
            quantityPerMember: number;
            organizers: string[];
            programs: string[];
            events: string[];
            description?: string | undefined;
            currentDiscount?: number | undefined;
            currentPrice?: number | undefined;
            priceMinLimit?: number | undefined;
            priceMaxLimit?: number | undefined;
            note?: string | undefined;
        } | undefined;
        posPalConfig?: {
            couponDataHash: string;
            startDate: Date;
            endDate: Date;
            beginDays: number;
            avaliableDays: number;
            avaliableQuantity: number;
            usedQuantity: number;
            createdQuantity: number;
            usageLimitTimes: number;
            usageLimitAmount: number;
            makeStartDate: Date;
            makeEndDate: Date;
            description?: string | undefined;
            usageLimitType?: string | undefined;
            usageLimitAmountType?: boolean | undefined;
        } | undefined;
    }, {
        openTixConfig?: {
            startTime: Date;
            endTime: Date;
            quantityPerMember: number;
            organizers: string[];
            programs: string[];
            events: string[];
            description?: string | undefined;
            currentDiscount?: number | undefined;
            currentPrice?: number | undefined;
            priceMinLimit?: number | undefined;
            priceMaxLimit?: number | undefined;
            note?: string | undefined;
        } | undefined;
        posPalConfig?: {
            couponDataHash: string;
            startDate: Date;
            endDate: Date;
            beginDays: number;
            avaliableDays: number;
            avaliableQuantity: number;
            usedQuantity: number;
            createdQuantity: number;
            usageLimitTimes: number;
            usageLimitAmount: number;
            makeStartDate: Date;
            makeEndDate: Date;
            description?: string | undefined;
            usageLimitType?: string | undefined;
            usageLimitAmountType?: boolean | undefined;
        } | undefined;
    }>>;
    imageId: z.ZodOptional<z.ZodString>;
}, "strip", z.ZodTypeAny, {
    type: "coupon" | "exchange";
    name: string;
    expType: "expAt" | "expDay" | "endOfPeriod";
    systemRedeem: boolean;
    sentCount: number;
    imageId?: string | undefined;
    expAt?: Date | undefined;
    expDay?: number | undefined;
    endOfPeriodUnit?: "month" | "day" | "week" | "quarter" | "year" | undefined;
    showMinute?: number | undefined;
    notice?: string | undefined;
    exchangeLink?: string | undefined;
    exchangeType?: "single" | "share" | undefined;
    firstSentLimit?: number | undefined;
    sentLimit?: number | undefined;
    extraStatus?: {
        opentixEcouponId?: string | undefined;
        opentixIsDisabled?: boolean | undefined;
        pospalEcouponId?: string | undefined;
        pospalIsDisabled?: boolean | undefined;
    } | undefined;
    extraSetting?: {
        openTixConfig?: {
            startTime: Date;
            endTime: Date;
            quantityPerMember: number;
            organizers: string[];
            programs: string[];
            events: string[];
            description?: string | undefined;
            currentDiscount?: number | undefined;
            currentPrice?: number | undefined;
            priceMinLimit?: number | undefined;
            priceMaxLimit?: number | undefined;
            note?: string | undefined;
        } | undefined;
        posPalConfig?: {
            couponDataHash: string;
            startDate: Date;
            endDate: Date;
            beginDays: number;
            avaliableDays: number;
            avaliableQuantity: number;
            usedQuantity: number;
            createdQuantity: number;
            usageLimitTimes: number;
            usageLimitAmount: number;
            makeStartDate: Date;
            makeEndDate: Date;
            description?: string | undefined;
            usageLimitType?: string | undefined;
            usageLimitAmountType?: boolean | undefined;
        } | undefined;
    } | undefined;
}, {
    type: "coupon" | "exchange";
    name: string;
    imageId?: string | undefined;
    expAt?: Date | undefined;
    expDay?: number | undefined;
    expType?: "expAt" | "expDay" | "endOfPeriod" | undefined;
    endOfPeriodUnit?: "month" | "day" | "week" | "quarter" | "year" | undefined;
    showMinute?: number | undefined;
    notice?: string | undefined;
    exchangeLink?: string | undefined;
    exchangeType?: "single" | "share" | undefined;
    systemRedeem?: boolean | undefined;
    sentCount?: number | undefined;
    firstSentLimit?: number | undefined;
    sentLimit?: number | undefined;
    extraStatus?: {
        opentixEcouponId?: string | undefined;
        opentixIsDisabled?: boolean | undefined;
        pospalEcouponId?: string | undefined;
        pospalIsDisabled?: boolean | undefined;
    } | undefined;
    extraSetting?: {
        openTixConfig?: {
            startTime: Date;
            endTime: Date;
            quantityPerMember: number;
            organizers: string[];
            programs: string[];
            events: string[];
            description?: string | undefined;
            currentDiscount?: number | undefined;
            currentPrice?: number | undefined;
            priceMinLimit?: number | undefined;
            priceMaxLimit?: number | undefined;
            note?: string | undefined;
        } | undefined;
        posPalConfig?: {
            couponDataHash: string;
            startDate: Date;
            endDate: Date;
            beginDays: number;
            avaliableDays: number;
            avaliableQuantity: number;
            usedQuantity: number;
            createdQuantity: number;
            usageLimitTimes: number;
            usageLimitAmount: number;
            makeStartDate: Date;
            makeEndDate: Date;
            description?: string | undefined;
            usageLimitType?: string | undefined;
            usageLimitAmountType?: boolean | undefined;
        } | undefined;
    } | undefined;
}>;
export type ICouponResourceSettingSchema = z.infer<typeof couponResourceSettingSchema>;
export declare const CouponResourceSchema: BaseResourceSchema<typeof couponResourceSettingSchema>;
