import { Component } from '../../../../client/component';
import { Element } from '../../../../client/element';
import { ComponentClass, System } from '../../../../system';
import { UnitBundleSpec } from '../../../../types/UnitBundleSpec';
import { $Wrap } from '../../../../types/interface/async/$Wrap';
export interface Props {
    component?: UnitBundleSpec;
}
export declare const DEFAULT_STYLE: {};
export default class Follow extends Element<HTMLDivElement, Props, $Wrap> {
    private _Container;
    private _child_container;
    private _parent_container;
    private _parent_child_container;
    constructor(props: {}, $system: System);
    private _rewrap;
    private rewrapParentChild;
    private rewrapParentRoot;
    private rewrapChild;
    private _connected_container;
    private _connected_child_container;
    private _connected_parent_root_container;
    private _connected_parent_child_container;
    memAppendChild(child: Component, slotName: string, at: number): void;
    memAppendParentChild(component: Component, slotName: string, at: number, _at: number): void;
    domAppendParentChildAt(component: Component, slotName: string, _at: number): void;
    memInsertParentChildAt(component: Component, slotName: string, _at: number): void;
    domInsertParentChildAt(component: Component, slotName: string, _at: number): void;
    memRemoveParentChildAt(component: Component, slotName: string, at: number, _at: number): void;
    domRemoveParentChildAt(component: Component, slotName: string, at: number, _at: number): void;
    domAppendChild(child: Component, slotName: string, at: number): void;
    postAppendChild(child: Component, slotName: string, at: number): void;
    postAppendParentChild(child: Component, slotName: string, at: number): void;
    domRemoveChild(child: Component, slotName: string, at: number): void;
    postRemoveChild(child: Component, at: number): void;
    insertParentRoot(component: Component, at: number, slotName: string): void;
    unshiftParentRoot(component: Component, slotName: string): void;
    pullParentRoot(component: Component): void;
    memAppendParentRoot(component: Component, slotName: string, at: number): void;
    domAppendParentRoot(component: Component, slotName: string, at: number): void;
    postAppendParentRoot(component: Component, slotName: string, at: number): void;
    domRemoveParentRootAt(component: Component, slotName: string, at: number, _at: number): void;
    postRemoveParentRootAt(component: Component, slotName: string, at: number, _at: number): void;
    domInsertParentRootAt(component: Component, at: number, slotName: string): void;
    postInsertParentRootAt(component: Component, at: number, slotName: string): void;
    onPropChanged(name: string, current: any): void;
    getContainer(): ComponentClass;
    getChildContainer(at: number): Component;
    getParentChildContainer(at: number): Component;
    getParentRootContainer(at: number): Component;
}
