import type { IServerContextDefaults, MockServer } from '../../index';
import { ExpectationsStorage } from '../../../expectations';
import { ContainersStorage } from '../containers';
import { HistoryStorage } from '../history';
import { IServerContext } from '../../types';
import { OnsiteClient } from '../../../client';
export declare class Provider<TContext extends IServerContext = IServerContextDefaults> {
    protected provided: Pick<Provider, 'group' | 'ttl'> & {
        history?: {
            limit?: number;
        };
    };
    TContext: TContext;
    server: MockServer;
    timestamp: number;
    client: OnsiteClient<TContext>;
    group: string;
    storages: {
        expectations: ExpectationsStorage;
        containers: ContainersStorage<object>;
        history: HistoryStorage;
    };
    /** Seconds */
    ttl?: number;
    constructor(provided: Pick<Provider, 'group' | 'ttl'> & {
        history?: {
            limit?: number;
        };
    });
    checkIsExpired(timestamp?: number): boolean;
    assign(payload: Partial<Pick<Provider, 'server' | 'client' | 'storages'>>): this;
    /** Extends storages of this instance with another provider */
    extend(provider: Provider): this;
    static build<TContext extends IServerContext = IServerContextDefaults>(provided: Provider['provided']): Provider<TContext>;
}
//# sourceMappingURL=model.d.ts.map