export type XlsxTransformerConcreteColumn = { id: string; name: string; width: number; category?: string; defaultCategory?: string; getValue(object: T): CellValue; }; export type XlsxTransformerColumn = XlsxTransformerConcreteColumn | { match: (id: string) => (XlsxTransformerConcreteColumn[] | undefined); }; export declare function isXlsxTransformerConcreteColumn(column: XlsxTransformerColumn): column is XlsxTransformerConcreteColumn; export interface XlsxTransformerSheet { id: string; name: string; transform?: (data: A) => B[]; columns: XlsxTransformerColumn[]; } export interface XlsxTransformerConcreteSheet { id: string; name: string; transform?: (data: A) => B[]; columns: XlsxTransformerConcreteColumn[]; } export interface CellValue { value: string | number | Date | null; width?: number; style?: CellStyleRequest; merge?: MergeCells; } export interface MergeCells { width: number; height: number; } /** * This should be implemented in a specific environment (e.g. nodejs, browser) * that can write Excel files, given input CellValues */ export interface XlsxWriterAdapter { addSheet(name: string): Promise | symbol; addRow(sheet: symbol, values: CellValue[]): Promise | void; /** * Called when all sheets have been added and all files are ready to be written */ ready(): Promise; close(): Promise; abort(): Promise; } export type XlsxWorkbookFilter = { sheets: { id: string; name?: string; columns: { id: string; name?: string; category?: string | null; }[]; }[]; }; export declare enum XlsxBuiltInNumberFormat { None = 0, Number = 1, Number2Decimal = 2, NumberWithThousandSeparator = 3, NumberWithThousandSeparator2Decimal = 4, CurrencyWithoutRed = 5, CurrencyWithRed = 6, Currency2DecimalWithoutRed = 7, Currency2DecimalWithRed = 8, Percentage = 9, Percentage2Decimal = 10, Scientific = 11, Fraction = 12, Fraction2 = 13, /** * m/d/yyyy (depends on user local environment) * In EU: 14/03/2022 */ DateSlash = 14, /** * d-mmm-yy * 14-Mar-22 */ DateShort = 15, /** * d-mmm * 14-Mar */ DateShortNoYear = 16, /** * mmm-yy * Mar-22 */ DateMonthYear = 17, /** * h:mm AM/PM * 2:30 PM */ TimeAMPM = 18, /** * h:mm:ss AM/PM * 2:30:15 PM */ TimeSecondsAMPM = 19, /** * h:mm * 2:30 */ Time = 20, /** * h:mm:ss * 2:30:15 */ TimeSeconds = 21, /** * m/d/yyyy h:mm (depends on user local environment) * 14/03/2022 14:30 */ DateTimeSlash = 22, /** * mm:ss * 02:30 */ TimeMinutesSeconds = 45, /** * [h]:mm:ss * 26:30:15 */ TimeHoursMinutesSeconds = 46, /** * mm:ss.0 * 02:30.0 */ TimeMinutesSecondsDecimal = 47, /** * ##0.0E+0 * 1.2E+3 */ Scientific2 = 48, /** * @ * Text */ Text = 49 } export type NumberFormatOptions = { id?: XlsxBuiltInNumberFormat | number; formatCode?: string; }; export declare enum CellType { Boolean = "b", Date = "d", Error = "e", InlineString = "inlineStr", Number = "n",// This is the default value SharedString = "s", Formula = "str" } export type FontOptions = { size?: number; bold?: boolean; }; export type CellAlignmentOptions = { horizontal?: 'general' | 'center' | 'centerContinuous' | 'distributed' | 'justify' | 'fill' | 'left' | 'right'; vertical?: 'bottom' | 'center' | 'distributed' | 'justify' | 'top'; wrapText?: boolean; }; export type CellStyleRequest = { font?: FontOptions; numberFormat?: NumberFormatOptions; alignment?: CellAlignmentOptions; }; //# sourceMappingURL=interfaces.d.ts.map