import { Observer } from "./observer.js";
import type { FormatterObservers, eventHandlerFunction, ObserverSyncCallback, Bindable } from "./types/index.js";
import type { View } from "./view.js";
export declare abstract class Binder<T = any, E = HTMLUnknownElement> implements Bindable<E> {
    static key: string;
    static block: boolean;
    name: string;
    publishes: boolean;
    priority: number;
    abstract routine(element: E, value: T): void;
    bind?(element: E): void;
    unbind?(element: E): void;
    update?(model: any): void;
    getValue?(element: E): void;
    value?: any;
    observer?: Observer;
    view: View;
    el: E;
    type: string | null;
    formatters: string[] | null;
    formatterObservers: FormatterObservers;
    keypath?: string;
    args: Array<string | number>;
    model?: any;
    marker?: Comment;
    constructor(view: View, el: E, type: string | null, name: string, keypath: string | undefined, formatters: string[] | null, identifier: string | null);
    observe(model: any, keypath: string, callback: ObserverSyncCallback): Observer;
    parseTarget(): void;
    getIterationAlias(modelName: string): string;
    parseFormatterArguments(args: string[], formatterIndex: number): string[];
    formattedValue(value: any, startIndex?: number): any;
    eventHandler(fn: eventHandlerFunction, el: HTMLElement): (ev: Event) => any;
    set(value: any): any;
    sync(): void;
    publish(): void;
    _bind(): void;
    _unbind(): void;
    _update(models?: any): void;
    _getValue(el: E): string | boolean | void | string[];
    protected getStarArguments(identifier: string, type: string): string[];
}
