import { AssertionContext } from './assertioncontext';
export interface iValue {
    $: any;
    name: string;
    toArray(): any[];
    toString(): string;
    toInteger(): number;
    toFloat(): number;
    toType(): string;
    isNullOrUndefined(): boolean;
    isUndefined(): boolean;
    isNull(): boolean;
    isNaN(): boolean;
    isNumber(): boolean;
    isNumeric(): boolean;
    isObject(): boolean;
    isPromise(): boolean;
    isRegularExpression(): boolean;
    isString(): boolean;
    isArray(): boolean;
    isCookie(): boolean;
    isPuppeteerElement(): boolean;
    isCheerioElement(): boolean;
    hasProperty(key: string): Promise<iValue>;
}
export declare abstract class ProtoValue implements iValue {
    protected _input: any;
    protected _context: AssertionContext;
    protected _name: string | null;
    readonly $: any;
    readonly name: string;
    constructor(input: any, context: AssertionContext, name?: string);
    toArray(): any[];
    valueOf(): any;
    toString(): string;
    toFloat(): number;
    toInteger(): number;
    toType(): string;
    isNullOrUndefined(): boolean;
    isUndefined(): boolean;
    isNull(): boolean;
    isPromise(): boolean;
    isArray(): boolean;
    isString(): boolean;
    isObject(): boolean;
    isNumber(): boolean;
    isNumeric(): boolean;
    isNaN(): boolean;
    isCookie(): boolean;
    isRegularExpression(): boolean;
    isCheerioElement(): boolean;
    isPuppeteerElement(): boolean;
    hasProperty(key: string): Promise<Value>;
    protected _wrapAsValue(data: any, name: string): Value;
}
export declare class Value extends ProtoValue implements iValue {
    getProperty(key: string): Promise<any>;
    hasProperty(key: string): Promise<Value>;
    readonly length: Value;
}
