import type { UmbControllerHost } from '../../../../libs/controller-api/index.js';
import { AsyncDirective, type ElementPart } from '../../../../external/lit/index.js';
/**
 * The `bind to validation` directive connects the Form Control Element to closets Validation Context.
 */
declare class UmbBindToValidationDirective extends AsyncDirective {
    #private;
    render(host: UmbControllerHost, dataPath?: string, value?: unknown): symbol;
    update(part: ElementPart, args: Parameters<typeof this.render>): symbol;
    disconnected(): void;
}
/**
 * @description
 * A Lit directive, which binds the validation state of the element to the Validation Context.
 *
 * The minimal binding can be established by just providing a host element:
 * @example:
 * ```js
 * html`<input ${umbBindToValidation(this)}>`;
 * ```
 * But can be extended with a dataPath, which is the path to the data holding the value. (if no server validation in this context, then this can be fictive and is then just used internal for remembering the validation state despite the element begin removed from the DOM.)
 * @example:
 * ```js
 * html`<input ${umbBindToValidation(this, '$.headline')}>`;
 * ```
 *
 * Additional the value can be provided, which is then used to remove a server validation state, if the value is changed.
 * @example:
 * ```js
 * html`<input ${umbBindToValidation(this, '$.headline', this.headlineValue)}>`;
 * ```
 */
export declare const umbBindToValidation: (host: UmbControllerHost, dataPath?: string | undefined, value?: unknown) => import("lit-html/directive.js").DirectiveResult<typeof UmbBindToValidationDirective>;
export {};
