import { z } from 'zod';
import { aether } from '../../../aether/aether';
import { render } from '../../render';
export declare const eraserStateZ: z.ZodObject<{
    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: "right" | "left";
            y: "top" | "bottom";
        }, {
            x: "right" | "left";
            y: "top" | "bottom";
        }>;
    }, "strip", z.ZodTypeAny, {
        one: {
            x: number;
            y: number;
        };
        two: {
            x: number;
            y: number;
        };
        root: {
            x: "right" | "left";
            y: "top" | "bottom";
        };
    }, {
        one: {
            x: number;
            y: number;
        };
        two: {
            x: number;
            y: number;
        };
        root: {
            x: "right" | "left";
            y: "top" | "bottom";
        };
    }>;
    enabled: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
}, "strip", z.ZodTypeAny, {
    region: {
        one: {
            x: number;
            y: number;
        };
        two: {
            x: number;
            y: number;
        };
        root: {
            x: "right" | "left";
            y: "top" | "bottom";
        };
    };
    enabled: boolean;
}, {
    region: {
        one: {
            x: number;
            y: number;
        };
        two: {
            x: number;
            y: number;
        };
        root: {
            x: "right" | "left";
            y: "top" | "bottom";
        };
    };
    enabled?: boolean | undefined;
}>;
interface InternalState {
    render: render.Context;
}
export declare class Eraser extends aether.Leaf<typeof eraserStateZ, InternalState> {
    static readonly TYPE = "eraser";
    schema: z.ZodObject<{
        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: "right" | "left";
                y: "top" | "bottom";
            }, {
                x: "right" | "left";
                y: "top" | "bottom";
            }>;
        }, "strip", z.ZodTypeAny, {
            one: {
                x: number;
                y: number;
            };
            two: {
                x: number;
                y: number;
            };
            root: {
                x: "right" | "left";
                y: "top" | "bottom";
            };
        }, {
            one: {
                x: number;
                y: number;
            };
            two: {
                x: number;
                y: number;
            };
            root: {
                x: "right" | "left";
                y: "top" | "bottom";
            };
        }>;
        enabled: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
    }, "strip", z.ZodTypeAny, {
        region: {
            one: {
                x: number;
                y: number;
            };
            two: {
                x: number;
                y: number;
            };
            root: {
                x: "right" | "left";
                y: "top" | "bottom";
            };
        };
        enabled: boolean;
    }, {
        region: {
            one: {
                x: number;
                y: number;
            };
            two: {
                x: number;
                y: number;
            };
            root: {
                x: "right" | "left";
                y: "top" | "bottom";
            };
        };
        enabled?: boolean | undefined;
    }>;
    private readonly eraser;
    afterUpdate(): Promise<void>;
    afterDelete(): Promise<void>;
    render(): Promise<undefined>;
}
export declare const REGISTRY: aether.ComponentRegistry;
export {};
//# sourceMappingURL=eraser.d.ts.map