import { HasTypeForMockDescriptor, AnyCaseMatcher, BaseSetupInfo } from '@contract-case/case-plugin-dsl-types';
export declare const MOCK_FUNCTION_EXECUTION: "_case:MockFunctionExecution";
export declare const MOCK_FUNCTION_CALLER: "_case:MockFunctionCaller";
export interface MockFunctionDescriptor {
    /** The arguments */
    request: AnyCaseMatcher;
    /** The return value */
    response: AnyCaseMatcher;
    /** The name of the function, for use as a handle by `registerFunction` */
    functionName: string;
}
export interface MockFunctionCallerDescriptor extends HasTypeForMockDescriptor<typeof MOCK_FUNCTION_CALLER>, MockFunctionDescriptor {
    '_case:run:context:setup': {
        write: {
            type: typeof MOCK_FUNCTION_CALLER;
            stateVariables: 'state';
            triggers: 'generated';
        };
        read: {
            type: typeof MOCK_FUNCTION_EXECUTION;
            stateVariables: 'default';
            triggers: 'provided';
        };
    };
}
export interface MockFunctionExecutionDescriptor extends HasTypeForMockDescriptor<typeof MOCK_FUNCTION_EXECUTION>, MockFunctionDescriptor {
    '_case:run:context:setup': {
        write: {
            type: typeof MOCK_FUNCTION_EXECUTION;
            stateVariables: 'default';
            triggers: 'provided';
        };
        read: {
            type: typeof MOCK_FUNCTION_CALLER;
            stateVariables: 'state';
            triggers: 'generated';
        };
    };
}
export type FunctionMockSetupInfo = HasTypeForMockDescriptor<typeof MOCK_FUNCTION_EXECUTION> & BaseSetupInfo;
export type FunctionCallerMockSetupInfo = HasTypeForMockDescriptor<typeof MOCK_FUNCTION_CALLER> & BaseSetupInfo;
//# sourceMappingURL=mocks.d.ts.map