import UnmockFaker from "../faker";
import { IInterceptorFactory } from "../interceptor";
import { CreateResponse, IListener, ISerializedRequest, IServiceDef, IServiceDefLoader, IUnmockOptions, OnSerializedRequest, ServiceStoreType } from "../interfaces";
import { IRandomNumberGenerator } from "../random-number-generator";
import { ServiceStore } from "../service/serviceStore";
export declare const errorForMissingTemplate: (sreq: ISerializedRequest) => string;
export declare const buildRequestHandler: (createResponse: CreateResponse) => OnSerializedRequest;
export interface IBackendOptions {
    interceptorFactory: IInterceptorFactory;
    listeners?: IListener[];
    serviceDefLoader?: IServiceDefLoader;
    randomNumberGenerator?: IRandomNumberGenerator;
}
export declare class Backend {
    readonly serviceStore: ServiceStore;
    readonly interceptorFactory: IInterceptorFactory;
    readonly serviceDefLoader: IServiceDefLoader;
    faker: UnmockFaker;
    handleRequest?: OnSerializedRequest;
    protected readonly requestResponseListeners: IListener[];
    private interceptor?;
    constructor({ interceptorFactory, listeners, randomNumberGenerator: rng, serviceDefLoader, }: IBackendOptions);
    get services(): ServiceStoreType;
    initialize(options: IUnmockOptions): void;
    reset(): void;
    loadServices(): void;
    protected updateServiceDefs(serviceDefs: IServiceDef[]): void;
}
export default Backend;
//# sourceMappingURL=index.d.ts.map