import { IValidationError } from './validation/IValidationError';
import { IValidationResult } from './validation/IValidationResult';
import { ILookupRegistry } from '../api/ILookupRegistry';
import { IEntityRef } from '../api/IEntityRef';
import { IClassRef } from '../api/IClassRef';
import { IValidationMessage } from './validation/IValidationMessage';
/**
 * Container for validation of object
 */
export declare class DataContainer<T> {
    static keys: string[];
    isValidated: boolean;
    isSuccess: boolean;
    isSuccessValidated: boolean;
    errors: IValidationError[];
    validation: {
        [k: string]: IValidationResult;
    };
    instance: T;
    ref: IEntityRef | IClassRef;
    constructor(instance: T, registry?: ILookupRegistry | IEntityRef | IClassRef);
    addError(e: IValidationError): void;
    hasErrors(): boolean;
    checked(str: string): boolean;
    value(str: string): any;
    valid(str: string): boolean;
    messages(str: string): IValidationMessage[];
    validate(): Promise<boolean>;
    applyState(): void;
    resetErrors(): void;
}
