import { EnumValidateState } from './enums';
import { IResultOfValidate } from './Page/ValidatingControl';
interface ICancellableEvent<T> {
    add(eventHandler: (eventArgs: T) => void): void;
    remove(eventHandler: (eventArgs: T) => void): void;
}
interface ICancellableEventArgs {
    cancel: boolean;
}
export declare class CancellableEvent<T extends ICancellableEventArgs> implements ICancellableEvent<T> {
    private _eventHandlers;
    add(eventHandler: (eventArgs: T) => void): void;
    remove(eventHandler: (eventArgs: T) => void): void;
    raise(e: T): void;
}
export declare class ValidationEventArgs implements ICancellableEventArgs {
    state: EnumValidateState;
    cancel: boolean;
    error: string;
    result: () => IResultOfValidate;
}
export declare class ValidationChain {
    private _validators;
    get validators(): ICancellableEvent<ValidationEventArgs>;
    validate(): IResultOfValidate;
}
export {};
