declare namespace CliTable3 { type CharName = "top" | "top-mid" | "top-left" | "top-right" | "bottom" | "bottom-mid" | "bottom-left" | "bottom-right" | "left" | "left-mid" | "mid" | "mid-mid" | "right" | "right-mid" | "middle"; type HorizontalAlignment = "left" | "center" | "right"; type VerticalAlignment = "top" | "center" | "bottom"; interface TableOptions { truncate: string; colWidths: Array; rowHeights: Array; colAligns: HorizontalAlignment[]; rowAligns: VerticalAlignment[]; head: string[]; wordWrap: boolean; } interface TableInstanceOptions extends TableOptions { chars: Record; style: { "padding-left": number; "padding-right": number; head: string[]; border: string[]; compact: boolean; }; } interface TableConstructorOptions extends Partial { chars?: Partial>; style?: Partial; } type CellValue = boolean | number | string | null | undefined; interface CellOptions { content: CellValue; chars?: Partial>; truncate?: string; colSpan?: number; rowSpan?: number; hAlign?: HorizontalAlignment; vAlign?: VerticalAlignment; style?: { "padding-left"?: number; "padding-right"?: number; head?: string[]; border?: string[]; }; } interface GenericTable extends Array { options: TableInstanceOptions; readonly width: number; } type Table = HorizontalTable | VerticalTable | CrossTable; type Cell = CellValue | CellOptions; type HorizontalTable = GenericTable; type HorizontalTableRow = Cell[]; type VerticalTable = GenericTable; interface VerticalTableRow { [name: string]: Cell; } type CrossTable = GenericTable; interface CrossTableRow { [name: string]: Cell[]; } } interface CliTable3 { new (options?: CliTable3.TableConstructorOptions): CliTable3.Table; readonly prototype: CliTable3.Table; } declare const CliTable3: CliTable3; export = CliTable3;