import View from "../../View";
import { IPropertyBinding } from "./IPropertyBinding";
export declare abstract class Controller<T> extends View<Element> {
    protected model: IPropertyBinding<T> | null;
    constructor({ tag }: {
        tag: string;
    });
    /**
     * Attach object to be controlled
     */
    bind(binding: IPropertyBinding<T>): void;
    /**
     * Write controller state to the controlled object
     */
    abstract write_state(): void;
    /**
     * Read controller state from the controlled object
     */
    abstract read_state(): void;
}
//# sourceMappingURL=Controller.d.ts.map