import { z } from 'zod';
import { BaseResourceSchema } from './base.js';
declare const resourceItemResourceSettingSchema: z.ZodObject<{
    enabled: z.ZodBoolean;
    name: z.ZodString;
    bookingMax: z.ZodNumber;
    enableTimeOff: z.ZodDefault<z.ZodBoolean>;
    businessTimeBy: z.ZodEnum<["shop", "branch"]>;
    timeOffConfig: z.ZodOptional<z.ZodObject<{
        months: z.ZodDefault<z.ZodArray<z.ZodNumber, "many">>;
        weekdays: z.ZodDefault<z.ZodArray<z.ZodNumber, "many">>;
        dateRangeSettings: z.ZodDefault<z.ZodArray<z.ZodObject<{
            start: z.ZodDate;
            end: z.ZodDate;
        }, "strip", z.ZodTypeAny, {
            start: Date;
            end: Date;
        }, {
            start: Date;
            end: Date;
        }>, "many">>;
        timeRangeSettings: z.ZodDefault<z.ZodArray<z.ZodObject<{
            start: z.ZodDate;
            end: z.ZodDate;
        }, "strip", z.ZodTypeAny, {
            start: Date;
            end: Date;
        }, {
            start: Date;
            end: Date;
        }>, "many">>;
    }, "strip", z.ZodTypeAny, {
        months: number[];
        weekdays: number[];
        dateRangeSettings: {
            start: Date;
            end: Date;
        }[];
        timeRangeSettings: {
            start: Date;
            end: Date;
        }[];
    }, {
        months?: number[] | undefined;
        weekdays?: number[] | undefined;
        dateRangeSettings?: {
            start: Date;
            end: Date;
        }[] | undefined;
        timeRangeSettings?: {
            start: Date;
            end: Date;
        }[] | undefined;
    }>>;
    excludeTimeRules: z.ZodOptional<z.ZodArray<z.ZodObject<{
        type: z.ZodEnum<["once", "weekly", "monthly", "yearly"]>;
        onceSetting: z.ZodOptional<z.ZodObject<{
            startAt: z.ZodDate;
            endAt: z.ZodDate;
        }, "strip", z.ZodTypeAny, {
            startAt: Date;
            endAt: Date;
        }, {
            startAt: Date;
            endAt: Date;
        }>>;
        weeklySetting: z.ZodOptional<z.ZodObject<{
            week: z.ZodNumber;
            startTime: z.ZodNumber;
            endTime: z.ZodNumber;
        }, "strip", z.ZodTypeAny, {
            week: number;
            startTime: number;
            endTime: number;
        }, {
            week: number;
            startTime: number;
            endTime: number;
        }>>;
        monthlySetting: z.ZodOptional<z.ZodObject<{
            startDay: z.ZodNumber;
            startTime: z.ZodNumber;
            endDay: z.ZodNumber;
            endTime: z.ZodNumber;
        }, "strip", z.ZodTypeAny, {
            startTime: number;
            endTime: number;
            startDay: number;
            endDay: number;
        }, {
            startTime: number;
            endTime: number;
            startDay: number;
            endDay: number;
        }>>;
        yearlySetting: z.ZodOptional<z.ZodObject<{
            startMonth: z.ZodNumber;
            startDay: z.ZodNumber;
            startTime: z.ZodNumber;
            endMonth: z.ZodNumber;
            endDay: z.ZodNumber;
            endTime: z.ZodNumber;
        }, "strip", z.ZodTypeAny, {
            startTime: number;
            endTime: number;
            startDay: number;
            endDay: number;
            startMonth: number;
            endMonth: number;
        }, {
            startTime: number;
            endTime: number;
            startDay: number;
            endDay: number;
            startMonth: number;
            endMonth: number;
        }>>;
    }, "strip", z.ZodTypeAny, {
        type: "once" | "weekly" | "monthly" | "yearly";
        onceSetting?: {
            startAt: Date;
            endAt: Date;
        } | undefined;
        weeklySetting?: {
            week: number;
            startTime: number;
            endTime: number;
        } | undefined;
        monthlySetting?: {
            startTime: number;
            endTime: number;
            startDay: number;
            endDay: number;
        } | undefined;
        yearlySetting?: {
            startTime: number;
            endTime: number;
            startDay: number;
            endDay: number;
            startMonth: number;
            endMonth: number;
        } | undefined;
    }, {
        type: "once" | "weekly" | "monthly" | "yearly";
        onceSetting?: {
            startAt: Date;
            endAt: Date;
        } | undefined;
        weeklySetting?: {
            week: number;
            startTime: number;
            endTime: number;
        } | undefined;
        monthlySetting?: {
            startTime: number;
            endTime: number;
            startDay: number;
            endDay: number;
        } | undefined;
        yearlySetting?: {
            startTime: number;
            endTime: number;
            startDay: number;
            endDay: number;
            startMonth: number;
            endMonth: number;
        } | undefined;
    }>, "many">>;
    order: z.ZodOptional<z.ZodNumber>;
    image: z.ZodOptional<z.ZodString>;
    appointmentServiceLogicIds: z.ZodArray<z.ZodString, "many">;
    resourceItemCategoryLogicIds: z.ZodArray<z.ZodString, "many">;
    businessTimeBranchLogicId: z.ZodString;
}, "strip", z.ZodTypeAny, {
    name: string;
    appointmentServiceLogicIds: string[];
    enabled: boolean;
    bookingMax: number;
    enableTimeOff: boolean;
    businessTimeBy: "shop" | "branch";
    resourceItemCategoryLogicIds: string[];
    businessTimeBranchLogicId: string;
    order?: number | undefined;
    image?: string | undefined;
    timeOffConfig?: {
        months: number[];
        weekdays: number[];
        dateRangeSettings: {
            start: Date;
            end: Date;
        }[];
        timeRangeSettings: {
            start: Date;
            end: Date;
        }[];
    } | undefined;
    excludeTimeRules?: {
        type: "once" | "weekly" | "monthly" | "yearly";
        onceSetting?: {
            startAt: Date;
            endAt: Date;
        } | undefined;
        weeklySetting?: {
            week: number;
            startTime: number;
            endTime: number;
        } | undefined;
        monthlySetting?: {
            startTime: number;
            endTime: number;
            startDay: number;
            endDay: number;
        } | undefined;
        yearlySetting?: {
            startTime: number;
            endTime: number;
            startDay: number;
            endDay: number;
            startMonth: number;
            endMonth: number;
        } | undefined;
    }[] | undefined;
}, {
    name: string;
    appointmentServiceLogicIds: string[];
    enabled: boolean;
    bookingMax: number;
    businessTimeBy: "shop" | "branch";
    resourceItemCategoryLogicIds: string[];
    businessTimeBranchLogicId: string;
    order?: number | undefined;
    image?: string | undefined;
    enableTimeOff?: boolean | undefined;
    timeOffConfig?: {
        months?: number[] | undefined;
        weekdays?: number[] | undefined;
        dateRangeSettings?: {
            start: Date;
            end: Date;
        }[] | undefined;
        timeRangeSettings?: {
            start: Date;
            end: Date;
        }[] | undefined;
    } | undefined;
    excludeTimeRules?: {
        type: "once" | "weekly" | "monthly" | "yearly";
        onceSetting?: {
            startAt: Date;
            endAt: Date;
        } | undefined;
        weeklySetting?: {
            week: number;
            startTime: number;
            endTime: number;
        } | undefined;
        monthlySetting?: {
            startTime: number;
            endTime: number;
            startDay: number;
            endDay: number;
        } | undefined;
        yearlySetting?: {
            startTime: number;
            endTime: number;
            startDay: number;
            endDay: number;
            startMonth: number;
            endMonth: number;
        } | undefined;
    }[] | undefined;
}>;
export type IResourceItemResourceSettingSchema = z.infer<typeof resourceItemResourceSettingSchema>;
export declare const ResourceItemResourceSchema: BaseResourceSchema<typeof resourceItemResourceSettingSchema>;
export {};
