import { z } from "zod";
export declare const PALETTE_IDS: readonly ["mono", "pastel", "neon", "earth", "noir"];
export type PaletteId = (typeof PALETTE_IDS)[number];
export declare const TextLayerSchema: z.ZodObject<{
    id: z.ZodString;
    kind: z.ZodLiteral<"text">;
    box: z.ZodObject<{
        x: z.ZodNumber;
        y: z.ZodNumber;
        w: z.ZodNumber;
        h: z.ZodNumber;
        rotation: z.ZodDefault<z.ZodNumber>;
    }, "strip", z.ZodTypeAny, {
        w: number;
        h: number;
        x: number;
        y: number;
        rotation: number;
    }, {
        w: number;
        h: number;
        x: number;
        y: number;
        rotation?: number | undefined;
    }>;
    text: z.ZodString;
    style: z.ZodDefault<z.ZodObject<{
        font: z.ZodDefault<z.ZodEnum<["serif", "sans", "mono"]>>;
        size: z.ZodDefault<z.ZodNumber>;
        weight: z.ZodDefault<z.ZodNumber>;
        italic: z.ZodDefault<z.ZodBoolean>;
        color: z.ZodDefault<z.ZodString>;
        align: z.ZodDefault<z.ZodEnum<["left", "center", "right"]>>;
        tracking: z.ZodDefault<z.ZodNumber>;
    }, "strip", z.ZodTypeAny, {
        size: number;
        font: "mono" | "serif" | "sans";
        weight: number;
        italic: boolean;
        tracking: number;
        color: string;
        align: "center" | "left" | "right";
    }, {
        size?: number | undefined;
        font?: "mono" | "serif" | "sans" | undefined;
        weight?: number | undefined;
        italic?: boolean | undefined;
        tracking?: number | undefined;
        color?: string | undefined;
        align?: "center" | "left" | "right" | undefined;
    }>>;
}, "strip", z.ZodTypeAny, {
    text: string;
    kind: "text";
    id: string;
    style: {
        size: number;
        font: "mono" | "serif" | "sans";
        weight: number;
        italic: boolean;
        tracking: number;
        color: string;
        align: "center" | "left" | "right";
    };
    box: {
        w: number;
        h: number;
        x: number;
        y: number;
        rotation: number;
    };
}, {
    text: string;
    kind: "text";
    id: string;
    box: {
        w: number;
        h: number;
        x: number;
        y: number;
        rotation?: number | undefined;
    };
    style?: {
        size?: number | undefined;
        font?: "mono" | "serif" | "sans" | undefined;
        weight?: number | undefined;
        italic?: boolean | undefined;
        tracking?: number | undefined;
        color?: string | undefined;
        align?: "center" | "left" | "right" | undefined;
    } | undefined;
}>;
export declare const ImageLayerSchema: z.ZodObject<{
    id: z.ZodString;
    kind: z.ZodLiteral<"image">;
    box: z.ZodObject<{
        x: z.ZodNumber;
        y: z.ZodNumber;
        w: z.ZodNumber;
        h: z.ZodNumber;
        rotation: z.ZodDefault<z.ZodNumber>;
    }, "strip", z.ZodTypeAny, {
        w: number;
        h: number;
        x: number;
        y: number;
        rotation: number;
    }, {
        w: number;
        h: number;
        x: number;
        y: number;
        rotation?: number | undefined;
    }>;
    src: z.ZodString;
    filters: z.ZodDefault<z.ZodObject<{
        blur: z.ZodDefault<z.ZodNumber>;
        brightness: z.ZodDefault<z.ZodNumber>;
        opacity: z.ZodDefault<z.ZodNumber>;
    }, "strip", z.ZodTypeAny, {
        brightness: number;
        opacity: number;
        blur: number;
    }, {
        brightness?: number | undefined;
        opacity?: number | undefined;
        blur?: number | undefined;
    }>>;
}, "strip", z.ZodTypeAny, {
    src: string;
    kind: "image";
    id: string;
    filters: {
        brightness: number;
        opacity: number;
        blur: number;
    };
    box: {
        w: number;
        h: number;
        x: number;
        y: number;
        rotation: number;
    };
}, {
    src: string;
    kind: "image";
    id: string;
    box: {
        w: number;
        h: number;
        x: number;
        y: number;
        rotation?: number | undefined;
    };
    filters?: {
        brightness?: number | undefined;
        opacity?: number | undefined;
        blur?: number | undefined;
    } | undefined;
}>;
export declare const ShapeLayerSchema: z.ZodObject<{
    id: z.ZodString;
    kind: z.ZodLiteral<"shape">;
    box: z.ZodObject<{
        x: z.ZodNumber;
        y: z.ZodNumber;
        w: z.ZodNumber;
        h: z.ZodNumber;
        rotation: z.ZodDefault<z.ZodNumber>;
    }, "strip", z.ZodTypeAny, {
        w: number;
        h: number;
        x: number;
        y: number;
        rotation: number;
    }, {
        w: number;
        h: number;
        x: number;
        y: number;
        rotation?: number | undefined;
    }>;
    shape: z.ZodEnum<["rect", "circle", "line"]>;
    fill: z.ZodDefault<z.ZodString>;
    stroke: z.ZodDefault<z.ZodNullable<z.ZodString>>;
    strokeWidth: z.ZodDefault<z.ZodNumber>;
}, "strip", z.ZodTypeAny, {
    fill: string;
    kind: "shape";
    shape: "circle" | "rect" | "line";
    id: string;
    stroke: string | null;
    box: {
        w: number;
        h: number;
        x: number;
        y: number;
        rotation: number;
    };
    strokeWidth: number;
}, {
    kind: "shape";
    shape: "circle" | "rect" | "line";
    id: string;
    box: {
        w: number;
        h: number;
        x: number;
        y: number;
        rotation?: number | undefined;
    };
    fill?: string | undefined;
    stroke?: string | null | undefined;
    strokeWidth?: number | undefined;
}>;
export declare const StickerLayerSchema: z.ZodObject<{
    id: z.ZodString;
    kind: z.ZodLiteral<"sticker">;
    box: z.ZodObject<{
        x: z.ZodNumber;
        y: z.ZodNumber;
        w: z.ZodNumber;
        h: z.ZodNumber;
        rotation: z.ZodDefault<z.ZodNumber>;
    }, "strip", z.ZodTypeAny, {
        w: number;
        h: number;
        x: number;
        y: number;
        rotation: number;
    }, {
        w: number;
        h: number;
        x: number;
        y: number;
        rotation?: number | undefined;
    }>;
    src: z.ZodString;
}, "strip", z.ZodTypeAny, {
    src: string;
    kind: "sticker";
    id: string;
    box: {
        w: number;
        h: number;
        x: number;
        y: number;
        rotation: number;
    };
}, {
    src: string;
    kind: "sticker";
    id: string;
    box: {
        w: number;
        h: number;
        x: number;
        y: number;
        rotation?: number | undefined;
    };
}>;
export declare const LayerSchema: z.ZodDiscriminatedUnion<"kind", [z.ZodObject<{
    id: z.ZodString;
    kind: z.ZodLiteral<"text">;
    box: z.ZodObject<{
        x: z.ZodNumber;
        y: z.ZodNumber;
        w: z.ZodNumber;
        h: z.ZodNumber;
        rotation: z.ZodDefault<z.ZodNumber>;
    }, "strip", z.ZodTypeAny, {
        w: number;
        h: number;
        x: number;
        y: number;
        rotation: number;
    }, {
        w: number;
        h: number;
        x: number;
        y: number;
        rotation?: number | undefined;
    }>;
    text: z.ZodString;
    style: z.ZodDefault<z.ZodObject<{
        font: z.ZodDefault<z.ZodEnum<["serif", "sans", "mono"]>>;
        size: z.ZodDefault<z.ZodNumber>;
        weight: z.ZodDefault<z.ZodNumber>;
        italic: z.ZodDefault<z.ZodBoolean>;
        color: z.ZodDefault<z.ZodString>;
        align: z.ZodDefault<z.ZodEnum<["left", "center", "right"]>>;
        tracking: z.ZodDefault<z.ZodNumber>;
    }, "strip", z.ZodTypeAny, {
        size: number;
        font: "mono" | "serif" | "sans";
        weight: number;
        italic: boolean;
        tracking: number;
        color: string;
        align: "center" | "left" | "right";
    }, {
        size?: number | undefined;
        font?: "mono" | "serif" | "sans" | undefined;
        weight?: number | undefined;
        italic?: boolean | undefined;
        tracking?: number | undefined;
        color?: string | undefined;
        align?: "center" | "left" | "right" | undefined;
    }>>;
}, "strip", z.ZodTypeAny, {
    text: string;
    kind: "text";
    id: string;
    style: {
        size: number;
        font: "mono" | "serif" | "sans";
        weight: number;
        italic: boolean;
        tracking: number;
        color: string;
        align: "center" | "left" | "right";
    };
    box: {
        w: number;
        h: number;
        x: number;
        y: number;
        rotation: number;
    };
}, {
    text: string;
    kind: "text";
    id: string;
    box: {
        w: number;
        h: number;
        x: number;
        y: number;
        rotation?: number | undefined;
    };
    style?: {
        size?: number | undefined;
        font?: "mono" | "serif" | "sans" | undefined;
        weight?: number | undefined;
        italic?: boolean | undefined;
        tracking?: number | undefined;
        color?: string | undefined;
        align?: "center" | "left" | "right" | undefined;
    } | undefined;
}>, z.ZodObject<{
    id: z.ZodString;
    kind: z.ZodLiteral<"image">;
    box: z.ZodObject<{
        x: z.ZodNumber;
        y: z.ZodNumber;
        w: z.ZodNumber;
        h: z.ZodNumber;
        rotation: z.ZodDefault<z.ZodNumber>;
    }, "strip", z.ZodTypeAny, {
        w: number;
        h: number;
        x: number;
        y: number;
        rotation: number;
    }, {
        w: number;
        h: number;
        x: number;
        y: number;
        rotation?: number | undefined;
    }>;
    src: z.ZodString;
    filters: z.ZodDefault<z.ZodObject<{
        blur: z.ZodDefault<z.ZodNumber>;
        brightness: z.ZodDefault<z.ZodNumber>;
        opacity: z.ZodDefault<z.ZodNumber>;
    }, "strip", z.ZodTypeAny, {
        brightness: number;
        opacity: number;
        blur: number;
    }, {
        brightness?: number | undefined;
        opacity?: number | undefined;
        blur?: number | undefined;
    }>>;
}, "strip", z.ZodTypeAny, {
    src: string;
    kind: "image";
    id: string;
    filters: {
        brightness: number;
        opacity: number;
        blur: number;
    };
    box: {
        w: number;
        h: number;
        x: number;
        y: number;
        rotation: number;
    };
}, {
    src: string;
    kind: "image";
    id: string;
    box: {
        w: number;
        h: number;
        x: number;
        y: number;
        rotation?: number | undefined;
    };
    filters?: {
        brightness?: number | undefined;
        opacity?: number | undefined;
        blur?: number | undefined;
    } | undefined;
}>, z.ZodObject<{
    id: z.ZodString;
    kind: z.ZodLiteral<"shape">;
    box: z.ZodObject<{
        x: z.ZodNumber;
        y: z.ZodNumber;
        w: z.ZodNumber;
        h: z.ZodNumber;
        rotation: z.ZodDefault<z.ZodNumber>;
    }, "strip", z.ZodTypeAny, {
        w: number;
        h: number;
        x: number;
        y: number;
        rotation: number;
    }, {
        w: number;
        h: number;
        x: number;
        y: number;
        rotation?: number | undefined;
    }>;
    shape: z.ZodEnum<["rect", "circle", "line"]>;
    fill: z.ZodDefault<z.ZodString>;
    stroke: z.ZodDefault<z.ZodNullable<z.ZodString>>;
    strokeWidth: z.ZodDefault<z.ZodNumber>;
}, "strip", z.ZodTypeAny, {
    fill: string;
    kind: "shape";
    shape: "circle" | "rect" | "line";
    id: string;
    stroke: string | null;
    box: {
        w: number;
        h: number;
        x: number;
        y: number;
        rotation: number;
    };
    strokeWidth: number;
}, {
    kind: "shape";
    shape: "circle" | "rect" | "line";
    id: string;
    box: {
        w: number;
        h: number;
        x: number;
        y: number;
        rotation?: number | undefined;
    };
    fill?: string | undefined;
    stroke?: string | null | undefined;
    strokeWidth?: number | undefined;
}>, z.ZodObject<{
    id: z.ZodString;
    kind: z.ZodLiteral<"sticker">;
    box: z.ZodObject<{
        x: z.ZodNumber;
        y: z.ZodNumber;
        w: z.ZodNumber;
        h: z.ZodNumber;
        rotation: z.ZodDefault<z.ZodNumber>;
    }, "strip", z.ZodTypeAny, {
        w: number;
        h: number;
        x: number;
        y: number;
        rotation: number;
    }, {
        w: number;
        h: number;
        x: number;
        y: number;
        rotation?: number | undefined;
    }>;
    src: z.ZodString;
}, "strip", z.ZodTypeAny, {
    src: string;
    kind: "sticker";
    id: string;
    box: {
        w: number;
        h: number;
        x: number;
        y: number;
        rotation: number;
    };
}, {
    src: string;
    kind: "sticker";
    id: string;
    box: {
        w: number;
        h: number;
        x: number;
        y: number;
        rotation?: number | undefined;
    };
}>]>;
export type Layer = z.infer<typeof LayerSchema>;
export type TextLayer = z.infer<typeof TextLayerSchema>;
export type ImageLayer = z.infer<typeof ImageLayerSchema>;
export type ShapeLayer = z.infer<typeof ShapeLayerSchema>;
export type StickerLayer = z.infer<typeof StickerLayerSchema>;
export declare const SlideBgSchema: z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
    type: z.ZodLiteral<"gradient">;
    value: z.ZodString;
}, "strip", z.ZodTypeAny, {
    value: string;
    type: "gradient";
}, {
    value: string;
    type: "gradient";
}>, z.ZodObject<{
    type: z.ZodLiteral<"image">;
    value: z.ZodString;
}, "strip", z.ZodTypeAny, {
    value: string;
    type: "image";
}, {
    value: string;
    type: "image";
}>, z.ZodObject<{
    type: z.ZodLiteral<"solid">;
    value: z.ZodString;
}, "strip", z.ZodTypeAny, {
    value: string;
    type: "solid";
}, {
    value: string;
    type: "solid";
}>]>;
export type SlideBg = z.infer<typeof SlideBgSchema>;
export declare const SlideSchema: z.ZodObject<{
    id: z.ZodString;
    bg: z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
        type: z.ZodLiteral<"gradient">;
        value: z.ZodString;
    }, "strip", z.ZodTypeAny, {
        value: string;
        type: "gradient";
    }, {
        value: string;
        type: "gradient";
    }>, z.ZodObject<{
        type: z.ZodLiteral<"image">;
        value: z.ZodString;
    }, "strip", z.ZodTypeAny, {
        value: string;
        type: "image";
    }, {
        value: string;
        type: "image";
    }>, z.ZodObject<{
        type: z.ZodLiteral<"solid">;
        value: z.ZodString;
    }, "strip", z.ZodTypeAny, {
        value: string;
        type: "solid";
    }, {
        value: string;
        type: "solid";
    }>]>;
    layers: z.ZodArray<z.ZodDiscriminatedUnion<"kind", [z.ZodObject<{
        id: z.ZodString;
        kind: z.ZodLiteral<"text">;
        box: z.ZodObject<{
            x: z.ZodNumber;
            y: z.ZodNumber;
            w: z.ZodNumber;
            h: z.ZodNumber;
            rotation: z.ZodDefault<z.ZodNumber>;
        }, "strip", z.ZodTypeAny, {
            w: number;
            h: number;
            x: number;
            y: number;
            rotation: number;
        }, {
            w: number;
            h: number;
            x: number;
            y: number;
            rotation?: number | undefined;
        }>;
        text: z.ZodString;
        style: z.ZodDefault<z.ZodObject<{
            font: z.ZodDefault<z.ZodEnum<["serif", "sans", "mono"]>>;
            size: z.ZodDefault<z.ZodNumber>;
            weight: z.ZodDefault<z.ZodNumber>;
            italic: z.ZodDefault<z.ZodBoolean>;
            color: z.ZodDefault<z.ZodString>;
            align: z.ZodDefault<z.ZodEnum<["left", "center", "right"]>>;
            tracking: z.ZodDefault<z.ZodNumber>;
        }, "strip", z.ZodTypeAny, {
            size: number;
            font: "mono" | "serif" | "sans";
            weight: number;
            italic: boolean;
            tracking: number;
            color: string;
            align: "center" | "left" | "right";
        }, {
            size?: number | undefined;
            font?: "mono" | "serif" | "sans" | undefined;
            weight?: number | undefined;
            italic?: boolean | undefined;
            tracking?: number | undefined;
            color?: string | undefined;
            align?: "center" | "left" | "right" | undefined;
        }>>;
    }, "strip", z.ZodTypeAny, {
        text: string;
        kind: "text";
        id: string;
        style: {
            size: number;
            font: "mono" | "serif" | "sans";
            weight: number;
            italic: boolean;
            tracking: number;
            color: string;
            align: "center" | "left" | "right";
        };
        box: {
            w: number;
            h: number;
            x: number;
            y: number;
            rotation: number;
        };
    }, {
        text: string;
        kind: "text";
        id: string;
        box: {
            w: number;
            h: number;
            x: number;
            y: number;
            rotation?: number | undefined;
        };
        style?: {
            size?: number | undefined;
            font?: "mono" | "serif" | "sans" | undefined;
            weight?: number | undefined;
            italic?: boolean | undefined;
            tracking?: number | undefined;
            color?: string | undefined;
            align?: "center" | "left" | "right" | undefined;
        } | undefined;
    }>, z.ZodObject<{
        id: z.ZodString;
        kind: z.ZodLiteral<"image">;
        box: z.ZodObject<{
            x: z.ZodNumber;
            y: z.ZodNumber;
            w: z.ZodNumber;
            h: z.ZodNumber;
            rotation: z.ZodDefault<z.ZodNumber>;
        }, "strip", z.ZodTypeAny, {
            w: number;
            h: number;
            x: number;
            y: number;
            rotation: number;
        }, {
            w: number;
            h: number;
            x: number;
            y: number;
            rotation?: number | undefined;
        }>;
        src: z.ZodString;
        filters: z.ZodDefault<z.ZodObject<{
            blur: z.ZodDefault<z.ZodNumber>;
            brightness: z.ZodDefault<z.ZodNumber>;
            opacity: z.ZodDefault<z.ZodNumber>;
        }, "strip", z.ZodTypeAny, {
            brightness: number;
            opacity: number;
            blur: number;
        }, {
            brightness?: number | undefined;
            opacity?: number | undefined;
            blur?: number | undefined;
        }>>;
    }, "strip", z.ZodTypeAny, {
        src: string;
        kind: "image";
        id: string;
        filters: {
            brightness: number;
            opacity: number;
            blur: number;
        };
        box: {
            w: number;
            h: number;
            x: number;
            y: number;
            rotation: number;
        };
    }, {
        src: string;
        kind: "image";
        id: string;
        box: {
            w: number;
            h: number;
            x: number;
            y: number;
            rotation?: number | undefined;
        };
        filters?: {
            brightness?: number | undefined;
            opacity?: number | undefined;
            blur?: number | undefined;
        } | undefined;
    }>, z.ZodObject<{
        id: z.ZodString;
        kind: z.ZodLiteral<"shape">;
        box: z.ZodObject<{
            x: z.ZodNumber;
            y: z.ZodNumber;
            w: z.ZodNumber;
            h: z.ZodNumber;
            rotation: z.ZodDefault<z.ZodNumber>;
        }, "strip", z.ZodTypeAny, {
            w: number;
            h: number;
            x: number;
            y: number;
            rotation: number;
        }, {
            w: number;
            h: number;
            x: number;
            y: number;
            rotation?: number | undefined;
        }>;
        shape: z.ZodEnum<["rect", "circle", "line"]>;
        fill: z.ZodDefault<z.ZodString>;
        stroke: z.ZodDefault<z.ZodNullable<z.ZodString>>;
        strokeWidth: z.ZodDefault<z.ZodNumber>;
    }, "strip", z.ZodTypeAny, {
        fill: string;
        kind: "shape";
        shape: "circle" | "rect" | "line";
        id: string;
        stroke: string | null;
        box: {
            w: number;
            h: number;
            x: number;
            y: number;
            rotation: number;
        };
        strokeWidth: number;
    }, {
        kind: "shape";
        shape: "circle" | "rect" | "line";
        id: string;
        box: {
            w: number;
            h: number;
            x: number;
            y: number;
            rotation?: number | undefined;
        };
        fill?: string | undefined;
        stroke?: string | null | undefined;
        strokeWidth?: number | undefined;
    }>, z.ZodObject<{
        id: z.ZodString;
        kind: z.ZodLiteral<"sticker">;
        box: z.ZodObject<{
            x: z.ZodNumber;
            y: z.ZodNumber;
            w: z.ZodNumber;
            h: z.ZodNumber;
            rotation: z.ZodDefault<z.ZodNumber>;
        }, "strip", z.ZodTypeAny, {
            w: number;
            h: number;
            x: number;
            y: number;
            rotation: number;
        }, {
            w: number;
            h: number;
            x: number;
            y: number;
            rotation?: number | undefined;
        }>;
        src: z.ZodString;
    }, "strip", z.ZodTypeAny, {
        src: string;
        kind: "sticker";
        id: string;
        box: {
            w: number;
            h: number;
            x: number;
            y: number;
            rotation: number;
        };
    }, {
        src: string;
        kind: "sticker";
        id: string;
        box: {
            w: number;
            h: number;
            x: number;
            y: number;
            rotation?: number | undefined;
        };
    }>]>, "many">;
}, "strip", z.ZodTypeAny, {
    id: string;
    bg: {
        value: string;
        type: "gradient";
    } | {
        value: string;
        type: "image";
    } | {
        value: string;
        type: "solid";
    };
    layers: ({
        text: string;
        kind: "text";
        id: string;
        style: {
            size: number;
            font: "mono" | "serif" | "sans";
            weight: number;
            italic: boolean;
            tracking: number;
            color: string;
            align: "center" | "left" | "right";
        };
        box: {
            w: number;
            h: number;
            x: number;
            y: number;
            rotation: number;
        };
    } | {
        src: string;
        kind: "image";
        id: string;
        filters: {
            brightness: number;
            opacity: number;
            blur: number;
        };
        box: {
            w: number;
            h: number;
            x: number;
            y: number;
            rotation: number;
        };
    } | {
        fill: string;
        kind: "shape";
        shape: "circle" | "rect" | "line";
        id: string;
        stroke: string | null;
        box: {
            w: number;
            h: number;
            x: number;
            y: number;
            rotation: number;
        };
        strokeWidth: number;
    } | {
        src: string;
        kind: "sticker";
        id: string;
        box: {
            w: number;
            h: number;
            x: number;
            y: number;
            rotation: number;
        };
    })[];
}, {
    id: string;
    bg: {
        value: string;
        type: "gradient";
    } | {
        value: string;
        type: "image";
    } | {
        value: string;
        type: "solid";
    };
    layers: ({
        text: string;
        kind: "text";
        id: string;
        box: {
            w: number;
            h: number;
            x: number;
            y: number;
            rotation?: number | undefined;
        };
        style?: {
            size?: number | undefined;
            font?: "mono" | "serif" | "sans" | undefined;
            weight?: number | undefined;
            italic?: boolean | undefined;
            tracking?: number | undefined;
            color?: string | undefined;
            align?: "center" | "left" | "right" | undefined;
        } | undefined;
    } | {
        src: string;
        kind: "image";
        id: string;
        box: {
            w: number;
            h: number;
            x: number;
            y: number;
            rotation?: number | undefined;
        };
        filters?: {
            brightness?: number | undefined;
            opacity?: number | undefined;
            blur?: number | undefined;
        } | undefined;
    } | {
        kind: "shape";
        shape: "circle" | "rect" | "line";
        id: string;
        box: {
            w: number;
            h: number;
            x: number;
            y: number;
            rotation?: number | undefined;
        };
        fill?: string | undefined;
        stroke?: string | null | undefined;
        strokeWidth?: number | undefined;
    } | {
        src: string;
        kind: "sticker";
        id: string;
        box: {
            w: number;
            h: number;
            x: number;
            y: number;
            rotation?: number | undefined;
        };
    })[];
}>;
export type Slide = z.infer<typeof SlideSchema>;
export declare const CAROUSEL_SCHEMA_VERSION = 1;
export declare const CarouselSchema: z.ZodObject<{
    id: z.ZodString;
    workId: z.ZodString;
    schemaVersion: z.ZodOptional<z.ZodNumber>;
    width: z.ZodNumber;
    height: z.ZodNumber;
    globals: z.ZodObject<{
        headlineFont: z.ZodDefault<z.ZodEnum<["serif", "sans", "mono"]>>;
        palette: z.ZodDefault<z.ZodEnum<["mono", "pastel", "neon", "earth", "noir"]>>;
        layout: z.ZodDefault<z.ZodEnum<["centered", "left", "split"]>>;
        effects: z.ZodDefault<z.ZodObject<{
            grain: z.ZodDefault<z.ZodNumber>;
            gradient: z.ZodDefault<z.ZodNumber>;
            sharpen: z.ZodDefault<z.ZodNumber>;
        }, "strip", z.ZodTypeAny, {
            gradient: number;
            grain: number;
            sharpen: number;
        }, {
            gradient?: number | undefined;
            grain?: number | undefined;
            sharpen?: number | undefined;
        }>>;
    }, "strip", z.ZodTypeAny, {
        headlineFont: "mono" | "serif" | "sans";
        palette: "mono" | "pastel" | "neon" | "earth" | "noir";
        layout: "split" | "left" | "centered";
        effects: {
            gradient: number;
            grain: number;
            sharpen: number;
        };
    }, {
        headlineFont?: "mono" | "serif" | "sans" | undefined;
        palette?: "mono" | "pastel" | "neon" | "earth" | "noir" | undefined;
        layout?: "split" | "left" | "centered" | undefined;
        effects?: {
            gradient?: number | undefined;
            grain?: number | undefined;
            sharpen?: number | undefined;
        } | undefined;
    }>;
    slides: z.ZodArray<z.ZodObject<{
        id: z.ZodString;
        bg: z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
            type: z.ZodLiteral<"gradient">;
            value: z.ZodString;
        }, "strip", z.ZodTypeAny, {
            value: string;
            type: "gradient";
        }, {
            value: string;
            type: "gradient";
        }>, z.ZodObject<{
            type: z.ZodLiteral<"image">;
            value: z.ZodString;
        }, "strip", z.ZodTypeAny, {
            value: string;
            type: "image";
        }, {
            value: string;
            type: "image";
        }>, z.ZodObject<{
            type: z.ZodLiteral<"solid">;
            value: z.ZodString;
        }, "strip", z.ZodTypeAny, {
            value: string;
            type: "solid";
        }, {
            value: string;
            type: "solid";
        }>]>;
        layers: z.ZodArray<z.ZodDiscriminatedUnion<"kind", [z.ZodObject<{
            id: z.ZodString;
            kind: z.ZodLiteral<"text">;
            box: z.ZodObject<{
                x: z.ZodNumber;
                y: z.ZodNumber;
                w: z.ZodNumber;
                h: z.ZodNumber;
                rotation: z.ZodDefault<z.ZodNumber>;
            }, "strip", z.ZodTypeAny, {
                w: number;
                h: number;
                x: number;
                y: number;
                rotation: number;
            }, {
                w: number;
                h: number;
                x: number;
                y: number;
                rotation?: number | undefined;
            }>;
            text: z.ZodString;
            style: z.ZodDefault<z.ZodObject<{
                font: z.ZodDefault<z.ZodEnum<["serif", "sans", "mono"]>>;
                size: z.ZodDefault<z.ZodNumber>;
                weight: z.ZodDefault<z.ZodNumber>;
                italic: z.ZodDefault<z.ZodBoolean>;
                color: z.ZodDefault<z.ZodString>;
                align: z.ZodDefault<z.ZodEnum<["left", "center", "right"]>>;
                tracking: z.ZodDefault<z.ZodNumber>;
            }, "strip", z.ZodTypeAny, {
                size: number;
                font: "mono" | "serif" | "sans";
                weight: number;
                italic: boolean;
                tracking: number;
                color: string;
                align: "center" | "left" | "right";
            }, {
                size?: number | undefined;
                font?: "mono" | "serif" | "sans" | undefined;
                weight?: number | undefined;
                italic?: boolean | undefined;
                tracking?: number | undefined;
                color?: string | undefined;
                align?: "center" | "left" | "right" | undefined;
            }>>;
        }, "strip", z.ZodTypeAny, {
            text: string;
            kind: "text";
            id: string;
            style: {
                size: number;
                font: "mono" | "serif" | "sans";
                weight: number;
                italic: boolean;
                tracking: number;
                color: string;
                align: "center" | "left" | "right";
            };
            box: {
                w: number;
                h: number;
                x: number;
                y: number;
                rotation: number;
            };
        }, {
            text: string;
            kind: "text";
            id: string;
            box: {
                w: number;
                h: number;
                x: number;
                y: number;
                rotation?: number | undefined;
            };
            style?: {
                size?: number | undefined;
                font?: "mono" | "serif" | "sans" | undefined;
                weight?: number | undefined;
                italic?: boolean | undefined;
                tracking?: number | undefined;
                color?: string | undefined;
                align?: "center" | "left" | "right" | undefined;
            } | undefined;
        }>, z.ZodObject<{
            id: z.ZodString;
            kind: z.ZodLiteral<"image">;
            box: z.ZodObject<{
                x: z.ZodNumber;
                y: z.ZodNumber;
                w: z.ZodNumber;
                h: z.ZodNumber;
                rotation: z.ZodDefault<z.ZodNumber>;
            }, "strip", z.ZodTypeAny, {
                w: number;
                h: number;
                x: number;
                y: number;
                rotation: number;
            }, {
                w: number;
                h: number;
                x: number;
                y: number;
                rotation?: number | undefined;
            }>;
            src: z.ZodString;
            filters: z.ZodDefault<z.ZodObject<{
                blur: z.ZodDefault<z.ZodNumber>;
                brightness: z.ZodDefault<z.ZodNumber>;
                opacity: z.ZodDefault<z.ZodNumber>;
            }, "strip", z.ZodTypeAny, {
                brightness: number;
                opacity: number;
                blur: number;
            }, {
                brightness?: number | undefined;
                opacity?: number | undefined;
                blur?: number | undefined;
            }>>;
        }, "strip", z.ZodTypeAny, {
            src: string;
            kind: "image";
            id: string;
            filters: {
                brightness: number;
                opacity: number;
                blur: number;
            };
            box: {
                w: number;
                h: number;
                x: number;
                y: number;
                rotation: number;
            };
        }, {
            src: string;
            kind: "image";
            id: string;
            box: {
                w: number;
                h: number;
                x: number;
                y: number;
                rotation?: number | undefined;
            };
            filters?: {
                brightness?: number | undefined;
                opacity?: number | undefined;
                blur?: number | undefined;
            } | undefined;
        }>, z.ZodObject<{
            id: z.ZodString;
            kind: z.ZodLiteral<"shape">;
            box: z.ZodObject<{
                x: z.ZodNumber;
                y: z.ZodNumber;
                w: z.ZodNumber;
                h: z.ZodNumber;
                rotation: z.ZodDefault<z.ZodNumber>;
            }, "strip", z.ZodTypeAny, {
                w: number;
                h: number;
                x: number;
                y: number;
                rotation: number;
            }, {
                w: number;
                h: number;
                x: number;
                y: number;
                rotation?: number | undefined;
            }>;
            shape: z.ZodEnum<["rect", "circle", "line"]>;
            fill: z.ZodDefault<z.ZodString>;
            stroke: z.ZodDefault<z.ZodNullable<z.ZodString>>;
            strokeWidth: z.ZodDefault<z.ZodNumber>;
        }, "strip", z.ZodTypeAny, {
            fill: string;
            kind: "shape";
            shape: "circle" | "rect" | "line";
            id: string;
            stroke: string | null;
            box: {
                w: number;
                h: number;
                x: number;
                y: number;
                rotation: number;
            };
            strokeWidth: number;
        }, {
            kind: "shape";
            shape: "circle" | "rect" | "line";
            id: string;
            box: {
                w: number;
                h: number;
                x: number;
                y: number;
                rotation?: number | undefined;
            };
            fill?: string | undefined;
            stroke?: string | null | undefined;
            strokeWidth?: number | undefined;
        }>, z.ZodObject<{
            id: z.ZodString;
            kind: z.ZodLiteral<"sticker">;
            box: z.ZodObject<{
                x: z.ZodNumber;
                y: z.ZodNumber;
                w: z.ZodNumber;
                h: z.ZodNumber;
                rotation: z.ZodDefault<z.ZodNumber>;
            }, "strip", z.ZodTypeAny, {
                w: number;
                h: number;
                x: number;
                y: number;
                rotation: number;
            }, {
                w: number;
                h: number;
                x: number;
                y: number;
                rotation?: number | undefined;
            }>;
            src: z.ZodString;
        }, "strip", z.ZodTypeAny, {
            src: string;
            kind: "sticker";
            id: string;
            box: {
                w: number;
                h: number;
                x: number;
                y: number;
                rotation: number;
            };
        }, {
            src: string;
            kind: "sticker";
            id: string;
            box: {
                w: number;
                h: number;
                x: number;
                y: number;
                rotation?: number | undefined;
            };
        }>]>, "many">;
    }, "strip", z.ZodTypeAny, {
        id: string;
        bg: {
            value: string;
            type: "gradient";
        } | {
            value: string;
            type: "image";
        } | {
            value: string;
            type: "solid";
        };
        layers: ({
            text: string;
            kind: "text";
            id: string;
            style: {
                size: number;
                font: "mono" | "serif" | "sans";
                weight: number;
                italic: boolean;
                tracking: number;
                color: string;
                align: "center" | "left" | "right";
            };
            box: {
                w: number;
                h: number;
                x: number;
                y: number;
                rotation: number;
            };
        } | {
            src: string;
            kind: "image";
            id: string;
            filters: {
                brightness: number;
                opacity: number;
                blur: number;
            };
            box: {
                w: number;
                h: number;
                x: number;
                y: number;
                rotation: number;
            };
        } | {
            fill: string;
            kind: "shape";
            shape: "circle" | "rect" | "line";
            id: string;
            stroke: string | null;
            box: {
                w: number;
                h: number;
                x: number;
                y: number;
                rotation: number;
            };
            strokeWidth: number;
        } | {
            src: string;
            kind: "sticker";
            id: string;
            box: {
                w: number;
                h: number;
                x: number;
                y: number;
                rotation: number;
            };
        })[];
    }, {
        id: string;
        bg: {
            value: string;
            type: "gradient";
        } | {
            value: string;
            type: "image";
        } | {
            value: string;
            type: "solid";
        };
        layers: ({
            text: string;
            kind: "text";
            id: string;
            box: {
                w: number;
                h: number;
                x: number;
                y: number;
                rotation?: number | undefined;
            };
            style?: {
                size?: number | undefined;
                font?: "mono" | "serif" | "sans" | undefined;
                weight?: number | undefined;
                italic?: boolean | undefined;
                tracking?: number | undefined;
                color?: string | undefined;
                align?: "center" | "left" | "right" | undefined;
            } | undefined;
        } | {
            src: string;
            kind: "image";
            id: string;
            box: {
                w: number;
                h: number;
                x: number;
                y: number;
                rotation?: number | undefined;
            };
            filters?: {
                brightness?: number | undefined;
                opacity?: number | undefined;
                blur?: number | undefined;
            } | undefined;
        } | {
            kind: "shape";
            shape: "circle" | "rect" | "line";
            id: string;
            box: {
                w: number;
                h: number;
                x: number;
                y: number;
                rotation?: number | undefined;
            };
            fill?: string | undefined;
            stroke?: string | null | undefined;
            strokeWidth?: number | undefined;
        } | {
            src: string;
            kind: "sticker";
            id: string;
            box: {
                w: number;
                h: number;
                x: number;
                y: number;
                rotation?: number | undefined;
            };
        })[];
    }>, "many">;
    updatedAt: z.ZodString;
}, "strip", z.ZodTypeAny, {
    workId: string;
    width: number;
    height: number;
    id: string;
    updatedAt: string;
    globals: {
        headlineFont: "mono" | "serif" | "sans";
        palette: "mono" | "pastel" | "neon" | "earth" | "noir";
        layout: "split" | "left" | "centered";
        effects: {
            gradient: number;
            grain: number;
            sharpen: number;
        };
    };
    slides: {
        id: string;
        bg: {
            value: string;
            type: "gradient";
        } | {
            value: string;
            type: "image";
        } | {
            value: string;
            type: "solid";
        };
        layers: ({
            text: string;
            kind: "text";
            id: string;
            style: {
                size: number;
                font: "mono" | "serif" | "sans";
                weight: number;
                italic: boolean;
                tracking: number;
                color: string;
                align: "center" | "left" | "right";
            };
            box: {
                w: number;
                h: number;
                x: number;
                y: number;
                rotation: number;
            };
        } | {
            src: string;
            kind: "image";
            id: string;
            filters: {
                brightness: number;
                opacity: number;
                blur: number;
            };
            box: {
                w: number;
                h: number;
                x: number;
                y: number;
                rotation: number;
            };
        } | {
            fill: string;
            kind: "shape";
            shape: "circle" | "rect" | "line";
            id: string;
            stroke: string | null;
            box: {
                w: number;
                h: number;
                x: number;
                y: number;
                rotation: number;
            };
            strokeWidth: number;
        } | {
            src: string;
            kind: "sticker";
            id: string;
            box: {
                w: number;
                h: number;
                x: number;
                y: number;
                rotation: number;
            };
        })[];
    }[];
    schemaVersion?: number | undefined;
}, {
    workId: string;
    width: number;
    height: number;
    id: string;
    updatedAt: string;
    globals: {
        headlineFont?: "mono" | "serif" | "sans" | undefined;
        palette?: "mono" | "pastel" | "neon" | "earth" | "noir" | undefined;
        layout?: "split" | "left" | "centered" | undefined;
        effects?: {
            gradient?: number | undefined;
            grain?: number | undefined;
            sharpen?: number | undefined;
        } | undefined;
    };
    slides: {
        id: string;
        bg: {
            value: string;
            type: "gradient";
        } | {
            value: string;
            type: "image";
        } | {
            value: string;
            type: "solid";
        };
        layers: ({
            text: string;
            kind: "text";
            id: string;
            box: {
                w: number;
                h: number;
                x: number;
                y: number;
                rotation?: number | undefined;
            };
            style?: {
                size?: number | undefined;
                font?: "mono" | "serif" | "sans" | undefined;
                weight?: number | undefined;
                italic?: boolean | undefined;
                tracking?: number | undefined;
                color?: string | undefined;
                align?: "center" | "left" | "right" | undefined;
            } | undefined;
        } | {
            src: string;
            kind: "image";
            id: string;
            box: {
                w: number;
                h: number;
                x: number;
                y: number;
                rotation?: number | undefined;
            };
            filters?: {
                brightness?: number | undefined;
                opacity?: number | undefined;
                blur?: number | undefined;
            } | undefined;
        } | {
            kind: "shape";
            shape: "circle" | "rect" | "line";
            id: string;
            box: {
                w: number;
                h: number;
                x: number;
                y: number;
                rotation?: number | undefined;
            };
            fill?: string | undefined;
            stroke?: string | null | undefined;
            strokeWidth?: number | undefined;
        } | {
            src: string;
            kind: "sticker";
            id: string;
            box: {
                w: number;
                h: number;
                x: number;
                y: number;
                rotation?: number | undefined;
            };
        })[];
    }[];
    schemaVersion?: number | undefined;
}>;
export type Carousel = z.infer<typeof CarouselSchema>;
/** Public layer-id generator. Shares the module-private `uid` counter so ids
 *  minted by UI affordances (e.g. CopyTab's "+ add text layer") can't collide
 *  with seed / duplicate ids. (#43 — wiring addLayer to the UI.) */
export declare const genLayerId: () => string;
/** Public slide-id generator. Shares the module-private `uid` counter so ids
 *  minted when duplicating a slide can't collide with each other within the
 *  same millisecond (B5 — duplicateSlide previously derived ids from a bare
 *  Date.now() with no monotonic counter, so two dups in one ms were
 *  byte-identical → React key collision + updateLayer/removeLayer cross-hit). */
export declare const genSlideId: () => string;
export declare function makeEmptySlide(): Slide;
export declare function makeEmptyCarousel(workId: string): Carousel;
//# sourceMappingURL=carousel.d.ts.map