import type { Logger } from '../../entities/logger/types';
import { AnyData } from '../../entities/nodes/matchers/types';
import type { AnyMockDescriptor, AnyCaseNodeOrData, AnyCaseMatcher, ContractLookupFns, MatchContextWithoutLookup, ResultPrinter, DataContext } from '../../entities/types';
import type { MatchContext, RunContext, TraversalFns, LogLevelContext } from './types';
export declare const foldIntoContext: (caseNode: AnyCaseMatcher | AnyMockDescriptor, context: MatchContext) => MatchContext;
export declare const constructDataContext: (makeLogger: (c: LogLevelContext) => Logger, resultPrinter: ResultPrinter, runConfig: Partial<RunContext>, defaults: Record<string, AnyData>) => DataContext;
export declare const constructMatchContext: (traversals: TraversalFns, makeLogger: (c: LogLevelContext) => Logger, makeLookup: (c: MatchContextWithoutLookup) => ContractLookupFns, resultPrinter: ResultPrinter, runConfig: Partial<RunContext>, defaults: Record<string, AnyData>) => MatchContext;
export declare const applyNodeToContext: (caseNodeOrData: AnyCaseNodeOrData | AnyMockDescriptor, context: MatchContext, runConfig?: Partial<RunContext>) => MatchContext;
export declare const addLocation: (location: string, context: MatchContext) => MatchContext;
export declare const locationString: (matchContext: LogLevelContext) => string;
