import { ValueError } from '@n1k1t/typebox/errors';
import { ExpectationOperator } from './operator';
import { IExpectationMeta, IExpectationSchemaContext, IExpectationSchemaInput, IExpectationSchema, IExpectationDefaults } from '../types';
type TExpectationPlainKey = 'schema' | 'id' | 'group' | 'isEnabled' | 'meta' | 'name' | 'transports' | 'defaults';
type TExpectationCompactKey = Exclude<TExpectationPlainKey, 'schema'>;
export declare class Expectation<TContext extends IExpectationSchemaContext<any> = any> {
    configuration: Pick<Expectation<TContext>, 'schema'> & Partial<Pick<Expectation<TContext>, 'id' | 'name' | 'isEnabled' | 'group' | 'transports' | 'meta' | 'defaults'>>;
    TPlain: Pick<Expectation<TContext>, TExpectationPlainKey> & {
        format: 'plain';
    };
    TCompact: Pick<Expectation<TContext>, TExpectationCompactKey> & {
        format: 'compact';
    };
    id: string;
    name: string;
    group: string;
    transports?: (TContext['transport'] | (string & {}))[];
    defaults?: IExpectationDefaults<TContext>;
    schema: IExpectationSchema<TContext>;
    isEnabled: boolean;
    request: ExpectationOperator<any>;
    response: ExpectationOperator<any> | null;
    meta: IExpectationMeta;
    private serialized;
    constructor(configuration: Pick<Expectation<TContext>, 'schema'> & Partial<Pick<Expectation<TContext>, 'id' | 'name' | 'isEnabled' | 'group' | 'transports' | 'meta' | 'defaults'>>);
    assign(payload: Partial<Pick<Expectation<TContext>, 'group'>>): this;
    increaseExecutionsCounter(): this;
    validate(): ValueError[];
    toPlain(): Expectation<TContext>['TPlain'];
    toCompact(): Expectation<TContext>['TCompact'];
    static build<TInput extends IExpectationSchemaInput>(configuration: Expectation<IExpectationSchemaContext<TInput>>['configuration']): Expectation<IExpectationSchemaContext<TInput>>;
}
export {};
//# sourceMappingURL=expectation.d.ts.map