// https://github.com/Microsoft/TypeScript/issues/1289
export function toArray(x: any): any[]
export function isNotNested(x: any): boolean
export function isIteratable(x: any): boolean
export function isJSON(x: any): x is JSON
// function(x) => x.every(<predicate>)
export function isArrayOf(predicate: Function): boolean
export function isArray(x: any): boolean
export function isArrayLike(x: any): boolean
export type isArray = typeof Array.isArray
export function toFlatPairs(data: Object, propertyIndexedObj: Object)
export function setToPairs(x: any): Array<any>
export function fromMapToArray(x: Map<any, any>): Array<any>
// --- props
export function isValidIndex(x: any): boolean
export function isValidPropertyKey(x: any): boolean
export function isSize(size: number, x: any): boolean
export function isIn(obj: Object, x: any): boolean
export function hasInWhere(obj: any, x: any): boolean
export function toKey(x: any): string | symbol
export function toLength(x: any): number
// --- kind
export function isTagEq(tag: string, value: any): boolean
export function toKindOf(x?: any): string
export function toObjStringTag(x?: any): string
export function toStringTag(x?: any): typeof Symbol.toString | string
export function toTypeTag(x?: any): string
export function toTypeCode(x?: any): number
interface DoublyLinkedList extends Array {
// @todo
}
export function fromArrayToDoublyLinkedList(x: Array<any>): DoublyLinkedList
export type toFlatPairs = fromArrayToDoublyLinkedList
export function isArrayTyped(
x: any
): x is
| Uint16Array
| Uint8Array
| Uint8ArrayConstructor
| Uint32ArrayConstructor
export function isArrayBuffer(x: any): x is ArrayBuffer
export function fromBufferToUint8Array(x: ArrayBuffer): Uint8Array
// !!! @todo
// export function arrayToObj()