import { Options, BindableElement, ClassOfBinder, ClassOfComponent } from "./types/index.js";
import { BasicComponent, Component } from "./component/index.js";
import { Binder } from "./binder.js";
export declare class View {
    static $rootScope: any;
    static bindingComparator: (a: Binder, b: Binder) => number;
    static create(binder: Binder, models: any, anchorEl: HTMLElement | Node | null): View;
    els: HTMLCollection | HTMLElement[] | Node[];
    models: any;
    options: Options;
    bindings: Array<Binder>;
    webComponents: Array<Component | BasicComponent>;
    constructor(els: HTMLCollection | HTMLElement | Node | NodeListOf<ChildNode> | HTMLUnknownElement[], models: any, options: Options);
    bind(): void;
    unbind(): void;
    sync(): void;
    publish(): void;
    update(models?: any): void;
    build(): void;
    protected startsWithPrefix(name: string): string | undefined;
    binderRegex(identifier: string): RegExp;
    private bindBinders;
    private bindComponent;
    traverse(node: BindableElement): boolean;
    buildBinding(node: HTMLUnknownElement | Text, type: string | null, declaration: string, Binder: ClassOfBinder, identifier: string | null): void;
    registerComponents(): void;
    registerComponent(COMPONENT: ClassOfComponent, nodeName?: string): void;
}
