import { ContractDefinerConnector, DefinitionFailingExample, DefinitionSuccessExample } from '../connectors';
import { MultiTestInvoker } from '../core/executeExample/types';
import { CaseConfig } from '../core/types';
import { AnyCaseNodeType, AnyData, AnyMockDescriptorType, ContractDescription, DataOrCaseNodeFor } from '../entities/types';
export declare class ContractDefiner<M extends AnyMockDescriptorType> {
    coreDefiner: ContractDefinerConnector<M>;
    constructor(description: ContractDescription, config: CaseConfig, invoker: MultiTestInvoker<M>);
    runExample<T extends AnyMockDescriptorType, R>(definition: DefinitionSuccessExample<T, R>, runConfig?: CaseConfig): Promise<unknown>;
    runRejectingExample<T extends AnyMockDescriptorType, R>(definition: DefinitionFailingExample<T, R>, runConfig?: CaseConfig): Promise<unknown>;
    endRecord(): Promise<unknown>;
    stripMatchers<T extends AnyCaseNodeType>(matcherOrData: DataOrCaseNodeFor<T>): AnyData;
}
