import { OnChangeAttrRender, OtherData } from '../lifecycle/OnChangeAttrRender';
import { OnCreateRenderData, OnCreateRenderDataParams } from '../lifecycle/OnCreateRenderData';
import { RawSet } from '../rawsets/RawSet';
import { ConstructorType } from '@dooboostore/core/types';
import { OnCreatedThisChild } from '../lifecycle/OnCreatedThisChild';
import { OnInitRender } from '../lifecycle/OnInitRender';
import { OnDestroyRender, OnDestroyRenderParams } from '../lifecycle/OnDestroyRender';
import { OnDrThisUnBind } from '../lifecycle/dr-this/OnDrThisUnBind';
import { OnDrThisBind } from '../lifecycle/dr-this/OnDrThisBind';
import * as Render from '../rawsets/Render';
export declare abstract class ComponentBase<T> implements OnChangeAttrRender, OnCreateRenderData, OnCreatedThisChild, OnDrThisBind, OnDrThisUnBind, OnInitRender, OnDestroyRender {
    private config?;
    private _rawSet?;
    private _children;
    private _render;
    private _attribute?;
    get render(): Render.Render | undefined;
    get rawSet(): RawSet | undefined;
    getAttribute<K extends keyof T>(name: K, attribute?: T): T[K] | null;
    hasAttribute(name: keyof T): boolean;
    equalsAttributeName(n: string, name: keyof T): boolean;
    get uuid(): string | undefined;
    get children(): any[];
    getElement<T extends Element>(): T | undefined;
    getFirstChild<T>(type: ConstructorType<T>): T | undefined;
    getParentThis<P>(): P;
    getChildren<C extends ConstructorType<any>>(type: C): InstanceType<C>[];
    getChildren<C extends ConstructorType<any>[]>(types: C): InstanceType<C[number]>[];
    constructor(config?: {
        onlyParentType: ConstructorType<any>[] | ConstructorType<any>;
    });
    setAttribute(attribute: T): void;
    onCreatedThisChild(child: any, data: OnCreateRenderDataParams): void;
    onCreateRenderData(data: OnCreateRenderDataParams): void;
    onChangeAttrRender(name: string, value: any, other: OtherData): void;
    onInitRender(param: any, rawSet: RawSet): void;
    onDrThisBind(): void;
    onDrThisUnBind(): void;
    onDestroyRender(data: OnDestroyRenderParams): void;
}
//# sourceMappingURL=ComponentBase.d.ts.map