import { AssertionResult } from './logging/assertionresult';
import { iAssertionContext, iAssertion } from './interfaces';
export declare class Assertion implements iAssertion {
    readonly and: Assertion;
    readonly type: Assertion;
    readonly length: Assertion;
    readonly not: Assertion;
    readonly optional: Assertion;
    readonly result: Promise<AssertionResult | null>;
    readonly assertionMade: boolean;
    readonly name: string;
    private _context;
    private _ajv;
    private _input;
    private _message;
    private _not;
    private _optional;
    private _result;
    private _finishedPromise;
    private _finishedResolver;
    private _statement;
    private _assertionMade;
    static create(context: iAssertionContext, thisValue: any, message?: string): Promise<Assertion>;
    constructor(context: iAssertionContext, thisValue: any, message?: string | null);
    exactly(value: any): Assertion;
    equals(value: any): Assertion;
    like(value: any): Assertion;
    greaterThan(value: any): Assertion;
    greaterThanOrEquals(value: any): Assertion;
    lessThan(value: any): Assertion;
    lessThanOrEquals(value: any): Assertion;
    between(min: any, max: any): Assertion;
    matches(value: any): Assertion;
    contains(value: any): Assertion;
    startsWith(value: any): Assertion;
    endsWith(value: any): Assertion;
    in(values: any[]): Assertion;
    includes(value: any): Assertion;
    exists(): Assertion;
    resolves(continueOnReject?: boolean): Promise<Assertion>;
    rejects(continueOnReject?: boolean): Promise<any>;
    none(callback: Function): Assertion;
    every(callback: Function): Assertion;
    some(callback: Function): Assertion;
    schema(schema: any, simple?: boolean): Promise<Assertion>;
    private _loadSchemaValidator;
    private _assert;
    private _getCompareValue;
    private _getSubject;
    private _eval;
    private _resolveAssertion;
}
