export { asArray } from "./as-array"; export { isArray } from "./is-array"; export { isDefined } from "./is-defined"; export { isNotNullOrUndefined } from "./is-not-null-or-undefined"; export { isNotNull } from "./is-not-null"; export { isNumber } from "./is-number"; export { isNumeric } from "./is-numeric"; export { isObjectOfProperties } from "./is-object-of-properties"; export { isObject } from "./is-object"; export { isPopulatedArray } from "./is-populated-array"; export { isScalar } from "./is-scalar"; export { isSingleArray } from "./is-single-array"; export type Flatten = T extends unknown[] ? T[number] : T; export type AsArray = T extends unknown[] ? T : T[]; export type ScalarOrArray = T | T[]; export type Subset = T extends unknown[] ? Pick[] : Pick; /** * Construct a union of properties that are functions from an object * * FunctionKeys<{ arg0: () => void; arg1: Function; arg2: string } * * => "arg0" | "arg1" */ export type FunctionKeys = { [Property in keyof T]: T[Property] extends Function ? Property : never; }[keyof T]; /** * Construct a type which only includes functions from an object * * FunctionProperties<{ arg0: () => void; arg1: Function; arg2: string } * * => { arg0: () => void; arg1: Function; } */ export type FunctionProperties = Pick>; export declare function isCallable(value: unknown): value is T;