import type { UmbValidator } from '../../interfaces/validator.interface.js';
import type { UmbControllerHost } from '../../../../../libs/controller-api/index.js';
import { UmbControllerBase } from '../../../../../libs/class-api/index.js';
export interface UmbValueValidatorArgs<ValueType = unknown> {
    dataPath?: string;
    check?: (value: ValueType) => boolean;
    message?: () => string;
    navigateToError?: () => void;
}
/**
 * UmbValueValidator is a controller that implements the UmbValidator interface.
 * It validates a value based on a provided check function, manages validation state,
 * and communicates validation messages to the validation context.
 * It can also handle navigation to the first invalid element if needed.
 */
export declare class UmbValueValidator<ValueType = unknown> extends UmbControllerBase implements UmbValidator {
    #private;
    set value(value: ValueType | undefined);
    get value(): ValueType | undefined;
    constructor(host: UmbControllerHost, args: UmbValueValidatorArgs<ValueType>);
    runCheck(): void;
    validate(): Promise<void>;
    get isValid(): boolean;
    reset(): void;
    /**
     * Focus the first invalid element.
     */
    focusFirstInvalidElement(): void;
    destroy(): void;
}
