import { aether } from '../../../aether/aether';
import { z } from 'zod';

export declare const canvasStateZ: z.ZodObject<{
    dpr: z.ZodNumber;
    region: z.ZodObject<{
        one: z.ZodObject<{
            x: z.ZodNumber;
            y: z.ZodNumber;
        }, "strip", z.ZodTypeAny, {
            x: number;
            y: number;
        }, {
            x: number;
            y: number;
        }>;
        two: z.ZodObject<{
            x: z.ZodNumber;
            y: z.ZodNumber;
        }, "strip", z.ZodTypeAny, {
            x: number;
            y: number;
        }, {
            x: number;
            y: number;
        }>;
        root: z.ZodObject<{
            x: z.ZodEnum<["left", "right"]>;
            y: z.ZodEnum<["top", "bottom"]>;
        }, "strip", z.ZodTypeAny, {
            x: "left" | "right";
            y: "bottom" | "top";
        }, {
            x: "left" | "right";
            y: "bottom" | "top";
        }>;
    }, "strip", z.ZodTypeAny, {
        one: {
            x: number;
            y: number;
        };
        two: {
            x: number;
            y: number;
        };
        root: {
            x: "left" | "right";
            y: "bottom" | "top";
        };
    }, {
        one: {
            x: number;
            y: number;
        };
        two: {
            x: number;
            y: number;
        };
        root: {
            x: "left" | "right";
            y: "bottom" | "top";
        };
    }>;
    bootstrap: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
    bootstrapped: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
    glCanvas: z.ZodOptional<z.ZodAny>;
    upper2dCanvas: z.ZodOptional<z.ZodAny>;
    lower2dCanvas: z.ZodOptional<z.ZodAny>;
    os: z.ZodEnum<["MacOS", "Windows", "Linux", "Docker"]>;
}, "strip", z.ZodTypeAny, {
    region: {
        one: {
            x: number;
            y: number;
        };
        two: {
            x: number;
            y: number;
        };
        root: {
            x: "left" | "right";
            y: "bottom" | "top";
        };
    };
    dpr: number;
    bootstrap: boolean;
    bootstrapped: boolean;
    os: "MacOS" | "Windows" | "Linux" | "Docker";
    glCanvas?: any;
    upper2dCanvas?: any;
    lower2dCanvas?: any;
}, {
    region: {
        one: {
            x: number;
            y: number;
        };
        two: {
            x: number;
            y: number;
        };
        root: {
            x: "left" | "right";
            y: "bottom" | "top";
        };
    };
    dpr: number;
    os: "MacOS" | "Windows" | "Linux" | "Docker";
    bootstrap?: boolean | undefined;
    bootstrapped?: boolean | undefined;
    glCanvas?: any;
    upper2dCanvas?: any;
    lower2dCanvas?: any;
}>;
export declare class Canvas extends aether.Composite<typeof canvasStateZ> {
    static readonly TYPE = "Canvas";
    schema: z.ZodObject<{
        dpr: z.ZodNumber;
        region: z.ZodObject<{
            one: z.ZodObject<{
                x: z.ZodNumber;
                y: z.ZodNumber;
            }, "strip", z.ZodTypeAny, {
                x: number;
                y: number;
            }, {
                x: number;
                y: number;
            }>;
            two: z.ZodObject<{
                x: z.ZodNumber;
                y: z.ZodNumber;
            }, "strip", z.ZodTypeAny, {
                x: number;
                y: number;
            }, {
                x: number;
                y: number;
            }>;
            root: z.ZodObject<{
                x: z.ZodEnum<["left", "right"]>;
                y: z.ZodEnum<["top", "bottom"]>;
            }, "strip", z.ZodTypeAny, {
                x: "left" | "right";
                y: "bottom" | "top";
            }, {
                x: "left" | "right";
                y: "bottom" | "top";
            }>;
        }, "strip", z.ZodTypeAny, {
            one: {
                x: number;
                y: number;
            };
            two: {
                x: number;
                y: number;
            };
            root: {
                x: "left" | "right";
                y: "bottom" | "top";
            };
        }, {
            one: {
                x: number;
                y: number;
            };
            two: {
                x: number;
                y: number;
            };
            root: {
                x: "left" | "right";
                y: "bottom" | "top";
            };
        }>;
        bootstrap: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
        bootstrapped: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
        glCanvas: z.ZodOptional<z.ZodAny>;
        upper2dCanvas: z.ZodOptional<z.ZodAny>;
        lower2dCanvas: z.ZodOptional<z.ZodAny>;
        os: z.ZodEnum<["MacOS", "Windows", "Linux", "Docker"]>;
    }, "strip", z.ZodTypeAny, {
        region: {
            one: {
                x: number;
                y: number;
            };
            two: {
                x: number;
                y: number;
            };
            root: {
                x: "left" | "right";
                y: "bottom" | "top";
            };
        };
        dpr: number;
        bootstrap: boolean;
        bootstrapped: boolean;
        os: "MacOS" | "Windows" | "Linux" | "Docker";
        glCanvas?: any;
        upper2dCanvas?: any;
        lower2dCanvas?: any;
    }, {
        region: {
            one: {
                x: number;
                y: number;
            };
            two: {
                x: number;
                y: number;
            };
            root: {
                x: "left" | "right";
                y: "bottom" | "top";
            };
        };
        dpr: number;
        os: "MacOS" | "Windows" | "Linux" | "Docker";
        bootstrap?: boolean | undefined;
        bootstrapped?: boolean | undefined;
        glCanvas?: any;
        upper2dCanvas?: any;
        lower2dCanvas?: any;
    }>;
    renderContextSet: boolean;
    afterUpdate(): Promise<void>;
}
export declare const REGISTRY: aether.ComponentRegistry;
//# sourceMappingURL=canvas.d.ts.map