interface ITypeMap {
    string: string;
    number: number;
    boolean: boolean;
}
declare type PrimitiveOrConstructor = {
    new (...args: any[]): any;
} | keyof ITypeMap;
declare type GuardedType<T extends PrimitiveOrConstructor> = T extends {
    new (...args: any[]): infer U;
} ? U : T extends keyof ITypeMap ? ITypeMap[T] : never;
/**
 * A generic type guard function to verify the class of a particular object, specially used for Error checks
 * @param o Object to check the class for
 * @param className The class to check against
 */
export declare function typeGuard<T extends PrimitiveOrConstructor>(o: any, className: T): o is GuardedType<T>;
export {};
