export interface iAssertionSchema {
    [key: string]: string | any[] | iAssertionSchemaItem;
}
export interface iAssertionSchemaTestOpts {
    path: string;
    parent: any;
    root: any;
}
export interface iAssertionSchemaItem {
    type?: string | string[];
    items?: iAssertionSchema | string;
    enum?: any[];
    matches?: RegExp | string;
    test: (value: any, opts: iAssertionSchemaTestOpts) => boolean;
}
export interface iAjvLike {
    errors: Error[];
    validate(schema: any, root: any): Promise<boolean>;
}
export declare class AssertionSchema implements iAjvLike {
    protected _schema: iAssertionSchema | undefined;
    protected _errors: Error[];
    protected _root: any;
    get errors(): Error[];
    validate(schema: any, root: any): Promise<boolean>;
    protected _logError(message: string): void;
    protected _matchesType(schema: any, document: any, path: string): boolean;
    protected _matchesEnum(schema: any, document: any, path: string): boolean;
    protected _matchesPattern(schema: any, document: any, path: string): boolean;
    protected _matchesTest(schema: any, document: any, path: string): boolean;
    protected _matchesItems(schema: any, document: any, path: string): boolean;
    protected _matchesProperties(schema: any, document: any, path: string): boolean;
    protected _isValid(schema: any, document: any, path: string): boolean;
}
