import { ComponentSchema } from '@subscan/widget-core';
import { RegistryInterface } from '@subscan/widget-runtime';
import { ComponentId, ComponentType, IAppModel, IComponentModel, ModuleId } from './IAppModel';
export declare class AppModel implements IAppModel {
    private registry;
    topComponents: IComponentModel[];
    emitter: IAppModel['emitter'];
    private schema;
    private componentMap;
    private componentsCount;
    constructor(components: ComponentSchema[], registry: RegistryInterface);
    get allComponents(): IComponentModel[];
    get allComponentsWithOrphan(): IComponentModel[];
    get moduleIds(): ModuleId[];
    toSchema(): ComponentSchema[];
    appendChild(component: IComponentModel): void;
    createComponent(type: ComponentType, id?: ComponentId): IComponentModel;
    getComponentById(componentId: ComponentId): IComponentModel | undefined;
    removeComponent(componentId: ComponentId): void;
    changeComponentMapId(oldId: ComponentId, newId: ComponentId): void;
    _bindComponentToModel(component: IComponentModel): void;
    genId(type: ComponentType): ComponentId;
    private resolveTree;
    traverseTree(cb: (c: IComponentModel) => void): void;
}
