type HorizontalTableRow = string[]; type VerticalTableRow = Record; type CrossTableRow = Record; type TableRow = HorizontalTableRow | VerticalTableRow | CrossTableRow; interface TableOptions { rows?: T[]; chars?: { [ k in | "top" | "top-mid" | "top-left" | "top-right" | "bottom" | "bottom-mid" | "bottom-left" | "bottom-right" | "left" | "left-mid" | "mid" | "mid-mid" | "right" | "right-mid" | "middle" ]?: string; }; truncate?: string; colors?: boolean; colWidths?: number[]; colAligns?: Array<"left" | "middle" | "right">; style?: { "padding-left"?: number; "padding-right"?: number; head?: string[]; border?: string[]; compact?: boolean; }; head?: string[]; } declare class Table extends Array { /** * Table constructor * * @param options * @api public */ constructor(options?: T extends CrossTableRow ? never : TableOptions); constructor(options: T extends CrossTableRow ? TableOptions & { head: ["", ...string[]] } : never); /** * Width getter * * @return width * @api public */ get width(): number; /** * Render to a string. * * @return table representation * @api public */ render(): string; /** * Render to a string. * * @return table representation * @api public */ toString(): string; static readonly version: string; } export = Table;