import { Node, NodeConfig } from './Node'; import { GetSet, IRect } from './types'; import { HitCanvas, SceneCanvas } from './Canvas'; import { SceneContext } from './Context'; export interface ContainerConfig extends NodeConfig { clearBeforeDraw?: boolean; clipFunc?: (ctx: SceneContext) => void; clipX?: number; clipY?: number; clipWidth?: number; clipHeight?: number; } export declare abstract class Container extends Node { children: Array | undefined; getChildren(filterFunc?: (item: Node) => boolean): ChildType[]; hasChildren(): boolean; removeChildren(): this; destroyChildren(): this; abstract _validateAdd(node: Node): void; add(...children: ChildType[]): this; destroy(): this; find(selector: any): Array; findOne(selector: string | Function): ChildNode; _generalFind(selector: string | Function, findOne: boolean): ChildNode[]; private _descendants; toObject(): any; isAncestorOf(node: Node): boolean; clone(obj?: any): this; getAllIntersections(pos: any): any[]; _clearSelfAndDescendantCache(attr?: string): void; _setChildrenIndices(): void; drawScene(can?: SceneCanvas, top?: Node): this; drawHit(can?: HitCanvas, top?: Node): this; _drawChildren(drawMethod: any, canvas: any, top: any): void; getClientRect(config?: { skipTransform?: boolean; skipShadow?: boolean; skipStroke?: boolean; relativeTo?: Container; }): IRect; clip: GetSet; clipX: GetSet; clipY: GetSet; clipWidth: GetSet; clipHeight: GetSet; clipFunc: GetSet<(ctx: CanvasRenderingContext2D, shape: Container) => void, this>; }