import { type BindDirectiveParametersOptions, type BindSource } from './BindDirective.js'; type BinderParameters = [keyPath: KeyPath.Of] | [options: BindDirectiveParametersOptions]; /** * A utility to facilitate binding to a property of a reactive element. * * @example * ```ts * class MyComponent extends Component { * state() data = { name: 'John' } * * binder = new Binder(this, 'data') * * get template() { * return html` * * * ` * } * } * ``` */ export declare class Binder { readonly host: BindSource; readonly key: string; constructor(host: BindSource, key: string); bind: (...[parameter]: BinderParameters) => import("lit-html/directive.js").DirectiveResult<{ new (partInfo: import("lit-html/directive.js").PartInfo): { "__#private@#valueBinder"?: import("./ValueBinder.js").ValueBinder; render(): unknown; update(part: import("lit-html").ElementPart | import("lit-html").AttributePart | import("lit-html").PropertyPart | import("lit-html").BooleanAttributePart, parameters: import("./BindDirective.js").BindDirectiveParameters): unknown; disconnected(): void; reconnected(): void; isConnected: boolean; _$initialize(part: import("lit-html").Part, parent: import("lit-html").Disconnectable, attributeIndex: number | undefined): void; setValue(value: unknown): void; get _$isConnected(): boolean; }; }>; protected getParameters(parameters: BindDirectiveParametersOptions): BindDirectiveParametersOptions; } export {}; //# sourceMappingURL=Binder.d.ts.map