export declare class MockObj {
    objProto: Object;
    constructor(objProto: Object);
}
export declare class MyProxyHandler<T extends Object> implements ProxyHandler<T> {
    expects: any[];
    baseClass: Function;
    constructor(baseClass: Function);
    get(target: T, p: PropertyKey, receiver: any): any;
    registerExpect(funcName: string, args: Array<any>, resp: any): void;
    doCall(target: T, p: PropertyKey, args: Array<any>): any;
}
export declare function mock<H extends Object>(clazz: Function, target?: H): H;
export declare class ResponseCapture {
    args: any[];
    functionName: string;
    handler: MyProxyHandler<any>;
    constructor(handler: MyProxyHandler<any>, functionName: string, args: Array<any>);
    thenReturn(resp: any): void;
}
export declare class CallCapture {
    functionName: string;
    args: any[];
    handler: MyProxyHandler<any>;
    constructor(handler: MyProxyHandler<any>, functionName: string);
    isCalled(): ResponseCapture;
    isCalledWith(...args: any[]): ResponseCapture;
}
export declare function when(f: Function): CallCapture;
