import { TgdPainterFunction } from "../types/painter";
import { TgdDebugPainterHierarchy as TgdDebugPainterHierarchy, TgdPainter } from "./painter";
export type TgdPainterGroupOptions = {
    onEnter?(time: number, delay: number): void;
    onExit?(time: number, delay: number): void;
    name?: string;
};
/**
 * Group several painters together.
 */
export declare class TgdPainterGroup extends TgdPainter {
    active: boolean;
    onEnter: TgdPainterFunction | undefined;
    onExit: TgdPainterFunction | undefined;
    protected readonly painters: TgdPainter[];
    private readonly logics;
    constructor(painters?: TgdPainter[], { onEnter, onExit, name }?: TgdPainterGroupOptions);
    forEachChild(callback: (child: TgdPainter, index: number) => void): void;
    has(painter: TgdPainter): boolean;
    add(...painters: TgdPainter[]): void;
    addFirst(...painters: TgdPainter[]): void;
    remove(...painters: TgdPainter[]): void;
    removeAll(): void;
    delete(): void;
    logicAdd(logic?: (time: number, delay: number) => void): void;
    logicRemove(logic?: (time: number, delay: number) => void): void;
    logicClear(): void;
    paint(time: number, delay: number): void;
    get hierarchy(): TgdDebugPainterHierarchy;
    debugHierarchy(caption?: string): void;
    private recursiveDebug;
}
//# sourceMappingURL=group.d.ts.map