declare function flatten (array: flatten.NestedArray): T[]; declare namespace flatten { interface NestedArray { [index: number]: T | NestedArray; length: number; } export function from (array: NestedArray): T[]; export function depth (array: NestedArray, depth: number): NestedArray; export function depthFrom (array: NestedArray, depth: number): NestedArray; } export = flatten;