import { z } from 'zod';
declare const lessonCalendarSchema: z.ZodObject<{
    name: z.ZodString;
    type: z.ZodLiteral<"lessons">;
    days: z.ZodArray<z.ZodArray<z.ZodString, "many">, "many">;
    lessonTimes: z.ZodOptional<z.ZodArray<z.ZodObject<{
        startTime: z.ZodString;
        length: z.ZodNumber;
    }, "strip", z.ZodTypeAny, {
        length: number;
        startTime: string;
    }, {
        length: number;
        startTime: string;
    }>, "many">>;
}, "strip", z.ZodTypeAny, {
    name: string;
    type: "lessons";
    days: string[][];
    lessonTimes?: {
        length: number;
        startTime: string;
    }[] | undefined;
}, {
    name: string;
    type: "lessons";
    days: string[][];
    lessonTimes?: {
        length: number;
        startTime: string;
    }[] | undefined;
}>;
export type LessonCalendar = z.infer<typeof lessonCalendarSchema>;
declare const sectionCalendarSchema: z.ZodObject<{
    name: z.ZodString;
    type: z.ZodLiteral<"sections">;
    days: z.ZodArray<z.ZodArray<z.ZodObject<{
        startTime: z.ZodString;
        length: z.ZodNumber;
    } & {
        name: z.ZodString;
    }, "strip", z.ZodTypeAny, {
        length: number;
        name: string;
        startTime: string;
    }, {
        length: number;
        name: string;
        startTime: string;
    }>, "many">, "many">;
}, "strip", z.ZodTypeAny, {
    name: string;
    type: "sections";
    days: {
        length: number;
        name: string;
        startTime: string;
    }[][];
}, {
    name: string;
    type: "sections";
    days: {
        length: number;
        name: string;
        startTime: string;
    }[][];
}>;
export type SectionCalendar = z.infer<typeof sectionCalendarSchema>;
export declare const scheduleSchema: z.ZodObject<{
    defaults: z.ZodObject<{
        lessonTimes: z.ZodOptional<z.ZodArray<z.ZodObject<{
            startTime: z.ZodString;
            length: z.ZodNumber;
        }, "strip", z.ZodTypeAny, {
            length: number;
            startTime: string;
        }, {
            length: number;
            startTime: string;
        }>, "many">>;
    }, "strip", z.ZodTypeAny, {
        lessonTimes?: {
            length: number;
            startTime: string;
        }[] | undefined;
    }, {
        lessonTimes?: {
            length: number;
            startTime: string;
        }[] | undefined;
    }>;
    calendars: z.ZodArray<z.ZodUnion<[z.ZodObject<{
        name: z.ZodString;
        type: z.ZodLiteral<"lessons">;
        days: z.ZodArray<z.ZodArray<z.ZodString, "many">, "many">;
        lessonTimes: z.ZodOptional<z.ZodArray<z.ZodObject<{
            startTime: z.ZodString;
            length: z.ZodNumber;
        }, "strip", z.ZodTypeAny, {
            length: number;
            startTime: string;
        }, {
            length: number;
            startTime: string;
        }>, "many">>;
    }, "strip", z.ZodTypeAny, {
        name: string;
        type: "lessons";
        days: string[][];
        lessonTimes?: {
            length: number;
            startTime: string;
        }[] | undefined;
    }, {
        name: string;
        type: "lessons";
        days: string[][];
        lessonTimes?: {
            length: number;
            startTime: string;
        }[] | undefined;
    }>, z.ZodObject<{
        name: z.ZodString;
        type: z.ZodLiteral<"sections">;
        days: z.ZodArray<z.ZodArray<z.ZodObject<{
            startTime: z.ZodString;
            length: z.ZodNumber;
        } & {
            name: z.ZodString;
        }, "strip", z.ZodTypeAny, {
            length: number;
            name: string;
            startTime: string;
        }, {
            length: number;
            name: string;
            startTime: string;
        }>, "many">, "many">;
    }, "strip", z.ZodTypeAny, {
        name: string;
        type: "sections";
        days: {
            length: number;
            name: string;
            startTime: string;
        }[][];
    }, {
        name: string;
        type: "sections";
        days: {
            length: number;
            name: string;
            startTime: string;
        }[][];
    }>]>, "many">;
}, "strip", z.ZodTypeAny, {
    defaults: {
        lessonTimes?: {
            length: number;
            startTime: string;
        }[] | undefined;
    };
    calendars: ({
        name: string;
        type: "lessons";
        days: string[][];
        lessonTimes?: {
            length: number;
            startTime: string;
        }[] | undefined;
    } | {
        name: string;
        type: "sections";
        days: {
            length: number;
            name: string;
            startTime: string;
        }[][];
    })[];
}, {
    defaults: {
        lessonTimes?: {
            length: number;
            startTime: string;
        }[] | undefined;
    };
    calendars: ({
        name: string;
        type: "lessons";
        days: string[][];
        lessonTimes?: {
            length: number;
            startTime: string;
        }[] | undefined;
    } | {
        name: string;
        type: "sections";
        days: {
            length: number;
            name: string;
            startTime: string;
        }[][];
    })[];
}>;
export type Schedule = z.infer<typeof scheduleSchema>;
export {};
//# sourceMappingURL=types.d.ts.map