import http from 'http';
import https from 'https';
import express from 'express';
import type * as Stuntman from '@stuntman/shared';
import { IPUtils } from './ipUtils.js';
import { LRUCache } from 'lru-cache';
import { API } from './api/api.js';
export declare class Mock {
    readonly mockUuid: string;
    protected options: Stuntman.Config;
    protected mockApp: express.Express | null;
    protected MOCK_DOMAIN_REGEX: RegExp;
    protected URL_PORT_REGEX: RegExp;
    protected server: http.Server | null;
    protected serverHttps: https.Server | null;
    protected trafficStore: LRUCache<string, Stuntman.LogEntry>;
    protected ipUtils: IPUtils | null;
    private _api;
    protected get apiServer(): API | null;
    get ruleExecutor(): Stuntman.RuleExecutorInterface;
    constructor(options: Stuntman.Config);
    private extractJwt;
    private requestHandler;
    private bindRequestContext;
    private errorHandler;
    private init;
    private proxyRequest;
    start(): void;
    stop(): Promise<void>;
    protected unproxyRequest(req: express.Request): Stuntman.BaseRequest;
    protected removeProxyPort(req: Stuntman.Request): void;
}
//# sourceMappingURL=mock.d.ts.map