export declare function isObject(value: T): value is T & object; declare type Intersect = (T extends any ? (x: T) => any : never) extends (x: infer R) => any ? R : never; declare type OptionalKeys = { [K in keyof T]-?: {} extends Pick ? K : never; }[keyof T]; export declare function hasOwnProperty>(val: T, prop: K): val is T & { [P in K]-?: T[P]; }; export declare function hasOwnProperty(val: T, prop: K): boolean; export declare function hasOwnProperty>(val: T, prop: K): val is Extract ? { [P in K]?: any; } : { [P in K]: any; }>; export {};