import { AccessorSpyFactory, OnlyMethodKeysOf, OnlyObservablePropsOf, OnlyPropsOf } from '.';
export interface ClassSpyConfiguration<T> {
    methodsToSpyOn?: OnlyMethodKeysOf<T>[];
    observablePropsToSpyOn?: OnlyObservablePropsOf<T>[];
    settersToSpyOn?: OnlyPropsOf<T>[];
    gettersToSpyOn?: OnlyPropsOf<T>[];
    providedMethodNames?: OnlyMethodKeysOf<T>[];
}
export declare function createAutoSpyFromClass<T, AutoSpyType, FrameworkSpecificFunctionSpy, FunctionAutoSpyType>(ObjectClass: {
    new (...args: any[]): T;
    [key: string]: any;
}, createFunctionSpy: (name: string) => FunctionAutoSpyType, accessorSpyFactory: AccessorSpyFactory<FrameworkSpecificFunctionSpy>, methodsToSpyOnOrConfig?: OnlyMethodKeysOf<T>[] | ClassSpyConfiguration<T>): AutoSpyType;
