/// <reference types="sinon" />
import { InPlaceMockManager, MockManager, OtherManager, StaticMockManager } from './managers/index';
import { IConstruct, IModule } from './types';
export declare class ImportMock {
    static mockClass<T, K extends IModule = any>(module: {
        [importName: string]: IConstruct<T>;
    } | K, importName?: keyof K): MockManager<T>;
    static mockClassInPlace<T, K extends IModule = any>(module: {
        [importName: string]: IConstruct<T>;
    } | K, importName?: keyof K): InPlaceMockManager<T>;
    static mockStaticClass<T, K extends IModule = any>(module: {
        [importName: string]: IConstruct<T>;
    } | K, importName?: keyof K): StaticMockManager<T>;
    static mockFunction<K extends IModule>(module: {
        [importName: string]: () => any;
    } | K, importName?: keyof K, returns?: any): sinon.SinonStub;
    static mockOther<T extends IModule, K extends keyof T>(module: {
        [importName: string]: T[K];
    } | T, importName?: K, replaceWith?: Partial<T[K]>): OtherManager<T[K]>;
    static restore(): void;
    private static sandboxedItems;
    private static sandbox;
}
