import { Primitive, PrimitiveEvents } from '../../Primitive';
import { SharedRef } from '../../SharefRef';
import { System } from '../../system';
import { DetachOpt } from '../../system/platform/api/component/Detach';
import { Dict } from '../../types/Dict';
import { AnimationSpec, C, C_EE, ComponentSetup } from '../../types/interface/C';
import { Component_, ComponentEvents } from '../../types/interface/Component';
import { UnitBundle } from '../../types/UnitBundle';
import { Unlisten } from '../../types/Unlisten';
import { ION, Opt } from '../Unit';
export type Component_EE = C_EE;
export type ComponentEE<_EE extends Dict<any[]>> = PrimitiveEvents<_EE & Component_EE> & Component_EE;
export declare class Component__<I extends Dict<any> = any, O extends Dict<any> = any, EE extends ComponentEE<EE> = ComponentEE<Component_EE>> extends Primitive<I, O, EE> implements C {
    __: string[];
    _children: Component_[];
    _root: Component_[];
    _parent_root: Component_[];
    _parent_children: Component_[];
    _slot: Dict<Component_>;
    _animations: AnimationSpec[];
    _stopPropagation: Dict<number>;
    _stopImmediatePropagation: Dict<number>;
    _preventDefault: Dict<number>;
    _detachTo: SharedRef<{
        host: string;
        opt: DetachOpt;
    }>;
    _attachDropTarget: [][];
    _attachText: [string, string][];
    constructor({ i, o }: ION<I, O>, opt: Opt, system: System, id: string);
    detach(host: Component_, opt: DetachOpt): Unlisten;
    isElement(): boolean;
    registerRoot(component: Component_, subComponentId: string, emit?: boolean): void;
    unregisterRoot(component: Component_, subComponentId: string, emit?: boolean): void;
    reorderRoot(component: Component_<ComponentEvents>, to: number, emit?: boolean): void;
    registerParentRoot(component: Component_, subComponentId: string, slotName: string, at?: number, emit?: boolean): void;
    unregisterParentRoot(component: Component_, subComponentId: string, emit: boolean): void;
    reorderParentRoot(component: Component_<ComponentEvents>, to: number): void;
    appendParentChild(component: Component_, slotName: string): void;
    removeParentChild(component: Component_): void;
    appendChild(bundle: UnitBundle, emit?: boolean): number;
    appendChildren(bundles: UnitBundle[]): number;
    insertChild(Bundle: UnitBundle, at: number): void;
    pushChild(Bundle: UnitBundle): number;
    hasChild(at: number): boolean;
    removeChild(at: number, emit?: boolean): Component_;
    pullChild(at: number): Component_;
    refRoot(at: number): Component_;
    refChild(at: number): Component_;
    refChildren(): Component_[];
    refSlot(slotName: string): Component_;
    getAnimations(): AnimationSpec[];
    animate(keyframes: Keyframe[], opt: KeyframeAnimationOptions): void;
    cancelAnimation(id: string): void;
    stopPropagation(name: string): Unlisten;
    attachText(type: string, text: string): Unlisten;
    attachDropTarget(): Unlisten;
    getSetup(): ComponentSetup;
    private _component_reset;
    private _component_play;
    private _component_pause;
    snapshotSelf(): Dict<any>;
    restoreSelf(state: Dict<any>): void;
}
