/// <reference types="node" />
import { Schema } from "ajv";
import { IteratorBoolCallback, IteratorCallback } from "../interfaces/iterator-callbacks";
import { iAssertion } from "../interfaces/iassertion";
import { iAssertionIs } from "../interfaces/iassertion-is";
import { iAssertionResult } from "../interfaces/iassertion-result";
import { iAssertionContext } from "../interfaces/iassertioncontext";
import { CompareCallback, JsFunction } from "../interfaces/generic-types";
import { AssertSchemaType } from "../interfaces/schema";
export declare class Assertion implements iAssertion {
    get value(): any;
    get text(): string;
    get subject(): string;
    get is(): iAssertionIs;
    get and(): iAssertion;
    get type(): iAssertion;
    get length(): iAssertion;
    get trim(): iAssertion;
    get keys(): iAssertion;
    get values(): iAssertion;
    get not(): iAssertion;
    get optional(): iAssertion;
    get result(): Promise<iAssertionResult | null>;
    get assertionMade(): boolean;
    get isFinalized(): boolean;
    get name(): string;
    get passed(): boolean | null;
    private get isFlagpoleValue();
    private get context();
    private _context;
    private _input;
    private _message;
    private _not;
    private _optional;
    private _result;
    private _finishedPromise;
    private _finishedResolver;
    private _statement;
    private _assertionMade;
    private _defaultMessages;
    static create(context: iAssertionContext, thisValue: any, message?: string): Promise<Assertion>;
    constructor(context: iAssertionContext, thisValue: any, message?: string | null);
    visible(): Promise<iAssertion>;
    hidden(): Promise<iAssertion>;
    hasValue(value: any): Promise<iAssertion>;
    hasProperty(key: string, value?: string): Promise<iAssertion>;
    hasAttribute(key: string, value?: string): Promise<iAssertion>;
    hasClassName(key: string, value?: string): Promise<iAssertion>;
    hasData(key: string, value?: string): Promise<iAssertion>;
    hasText(text: string): Promise<iAssertion>;
    hasTag(tagName?: string): Promise<iAssertion>;
    exactly(value: any): iAssertion;
    equals(value: any): iAssertion;
    like(value: any): iAssertion;
    greaterThan(value: any): iAssertion;
    greaterThanOrEquals(value: any): iAssertion;
    lessThan(value: any): iAssertion;
    lessThanOrEquals(value: any): iAssertion;
    between(min: any, max: any): iAssertion;
    matches(value: string | RegExp): iAssertion;
    in(values: any[]): iAssertion;
    includes(value: any): iAssertion;
    contains(value: any): iAssertion;
    looksLike(controlImage: string | Buffer, allowedDifference?: number | string): iAssertion;
    startsWith(value: any): iAssertion;
    endsWith(value: any): iAssertion;
    exists(): iAssertion;
    resolves(continueOnReject?: boolean): Promise<iAssertion>;
    rejects(continueOnReject?: boolean): Promise<any>;
    none(callback: IteratorBoolCallback): Promise<iAssertion>;
    eval(js: JsFunction, ...args: any[]): Promise<iAssertion>;
    evalEvery(js: JsFunction, ...args: any[]): Promise<iAssertion>;
    every(callback: IteratorBoolCallback): Promise<iAssertion>;
    everySync(callback: IteratorCallback): iAssertion;
    map(callback: IteratorCallback): Promise<iAssertion>;
    some(callback: IteratorBoolCallback): Promise<iAssertion>;
    pluck<T>(property: string): Assertion;
    nth<T>(n: number): Assertion;
    schema(schemaName: string, useJsonSchema: boolean): Promise<iAssertion>;
    schema(schema: string, schemaType?: AssertSchemaType): Promise<iAssertion>;
    schema(schema: Schema, schemaType?: AssertSchemaType): Promise<iAssertion>;
    assert(message: string, value: any): iAssertion;
    assert(value: any): iAssertion;
    comment(input: any): iAssertion;
    as(aliasName: string): iAssertion;
    execute(bool: boolean, actualValue: any, highlightText?: string | null, expectedValue?: string): iAssertion;
    setDefaultMessage(message: string): iAssertion;
    setDefaultNotMessage(message: string): iAssertion;
    setDefaultMessages(notMessage: string, standardMessage: string): iAssertion;
    sort(compareFunc?: CompareCallback): iAssertion;
    private _mustBeArray;
    private _executeSchema;
    private _getMessage;
    private _getSourceCode;
    private _getHighlightText;
    private _getErrorDetails;
    private _getValues;
    private _getCompareValue;
    private _getName;
    protected _is(method: string, item?: any): Promise<boolean>;
    protected _hasKeyValue(method: string, key: string, value?: any, item?: any): Promise<boolean>;
    private _thisOrThat;
    protected _hasValue(method: string, value?: any, item?: any): Promise<boolean>;
    protected _clone(value: any, name: string): Assertion;
}
