import { HTTPMethod, ISerializedRequest } from "../interfaces";
import { Dereferencer, IObjectToService, IServiceCore, IStateInput, MatcherResponse, OpenAPIObject } from "./interfaces";
import { IRequestResponsePair, ServiceSpy } from "./spy";
export declare class ServiceCore implements IServiceCore {
    static from(baseSchema: OpenAPIObject, { baseUrl, method, endpoint, statusCode, response, name, }: IObjectToService & {
        name: string;
    }): IServiceCore;
    readonly name: string;
    readonly absPath: string;
    readonly dereferencer: Dereferencer;
    private hasPaths;
    private readonly oasSchema;
    private readonly matcher;
    private readonly state;
    private readonly callTracker;
    constructor(opts: {
        schema: OpenAPIObject;
        name: string;
        absPath?: string;
    });
    readonly schema: OpenAPIObject;
    readonly hasDefinedPaths: boolean;
    track(requestResponsePair: IRequestResponsePair): void;
    readonly spy: ServiceSpy;
    match(sreq: ISerializedRequest): MatcherResponse;
    resetState(): void;
    updateState(stateInput: IStateInput): void;
    getState(method: HTTPMethod, endpoint: string): Record<string, Record<string, import("loas3/dist/generated/full").Schema>> | undefined;
}
//# sourceMappingURL=serviceCore.d.ts.map