import type { JSONObject, JSONValue } from 'tiny-types';
import { TinyType } from 'tiny-types';
import { Name } from '../../../model';
import { Unanswered } from '../Unanswered';
/**
 * Used with [`ExpectationOutcome`](https://serenity-js.org/api/core/class/ExpectationOutcome/) to describe an [`Expectation`](https://serenity-js.org/api/core/class/Expectation/) and the arguments it's been executed with.
 *
 * @group Expectations
 */
export declare class ExpectationDetails extends TinyType {
    readonly name: Name;
    readonly args: Array<JSONValue | ExpectationDetails | Unanswered>;
    static of(functionName: string, ...functionArguments: Array<JSONValue | ExpectationDetails | Unanswered>): ExpectationDetails;
    static fromJSON(o: JSONObject): ExpectationDetails;
    protected constructor(name: Name, args: Array<JSONValue | ExpectationDetails | Unanswered>);
    toString(): string;
    toJSON(): {
        name: string;
        args: Array<{
            type: string;
            value: JSONValue;
        }>;
    };
}
//# sourceMappingURL=ExpectationDetails.d.ts.map