import { Signal, WritableSignal } from '@angular/core';
import { ValidatorError } from '../errors';
import { SimplePath } from '../type-utils';
import { IValidator, ValidationUpdate } from "./interface";
export declare class Validation<TProperties extends object> {
    readonly validators: {
        [key in SimplePath<TProperties>]?: Array<IValidator>;
    };
    readonly isValid: Signal<boolean>;
    readonly errors: Signal<Array<ValidatorError>>;
    isValidating: Signal<boolean>;
    protected errorMap: Map<string, ValidationUpdate>;
    protected writableErrors: WritableSignal<Array<ValidatorError>>;
    protected writableIsValid: WritableSignal<boolean>;
    protected writableIsValidating: WritableSignal<boolean>;
    constructor(validators: {
        [key in SimplePath<TProperties>]?: Array<IValidator>;
    });
    update(key: string, update: ValidationUpdate): void;
}
