export declare function getType(type: any): string; export declare function isObject(obj: any): boolean; export declare const isArray: (arg: any) => arg is any[]; export declare function isString(a: any): a is string; export declare function isBoolean(obj: any): boolean; /** * Get type of variable * @see http://jsperf.com/typeofvar */ export declare function typeOf(input: any): string; export declare type RemoveProperties = Pick>; export declare type PropertyOptional = RemoveProperties & ({ [a in K]?: O[K]; }); /** Useful TODO reminder when you are porting typings of a JavaScript library */ export declare type TODO = any; /** Removes undefined from type */ export declare type NotUndefined = Exclude; export declare type EmptyObject = {}; export declare type Map = { [k in K]: V; }; declare type falsy = undefined | null | false | '' | 0; /** * Without arguments it returns the union of all falsy values. With arguments it returns given type excluding falsy arguments. Example `Falsy ` will be `false|null` */ export declare type Falsy = T extends never ? (never extends T ? falsy : Extract) : Extract; /** Removes undefined from type. Example `Falsy` will be `number|true` */ export declare type NotFalsy = Exclude; /** c:ObjectStringKeyUnion<{a:1,b:'s'}> === 'a'|'b' */ export declare type ObjectStringKeyUnion = Extract; export declare type Fn = (...args: args) => returnValue; /** UnionToIntersection<1|2|3> will be 1 & 2 & 3 */ export declare type UnionToIntersection = (U extends any ? (k: U) => void : never) extends ((k: infer I) => void) ? I : never; export {};