import { TgdContext } from "../../context";
import { TgdPainterGroup } from "../group";
import { TgdPainter } from "../painter";
import { WebglBlendOptions, WebglDepthOptions, WebglCullOptions, WebglStencilOptions } from "../../utils/state";
import { TgdPainterFunction } from "../../types/painter";
export interface TgdPainterStateOptions {
    children: TgdPainter[];
    color: boolean | [boolean, boolean, boolean, boolean];
    blend: WebglBlendOptions;
    depth: WebglDepthOptions;
    cull: WebglCullOptions;
    stencil: WebglStencilOptions;
    name: string;
    /**
     * Function to execute before painting.
     */
    onEnter?: TgdPainterFunction;
    /**
     * Function to execute after painting.
     */
    onExit?: TgdPainterFunction;
}
export declare class TgdPainterState extends TgdPainterGroup {
    static do(options: Omit<Partial<TgdPainterStateOptions>, "children" | "onEnter" | "onExit"> & {
        gl: WebGL2RenderingContext;
    }, action: () => void): void;
    constructor(context: TgdContext, options?: Partial<TgdPainterStateOptions>);
}
//# sourceMappingURL=state.d.ts.map