You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							2018 lines
						
					
					
						
							49 KiB
						
					
					
				
			
		
		
	
	
							2018 lines
						
					
					
						
							49 KiB
						
					
					
				declare interface Buffer extends ArrayBuffer { }
 | 
						|
 | 
						|
export declare enum RelationshipType {
 | 
						|
	None = 0,
 | 
						|
	OfficeDocument = 1,
 | 
						|
	Worksheet = 2,
 | 
						|
	CalcChain = 3,
 | 
						|
	SharedStrings = 4,
 | 
						|
	Styles = 5,
 | 
						|
	Theme = 6,
 | 
						|
	Hyperlink = 7
 | 
						|
}
 | 
						|
 | 
						|
export declare enum DocumentType {
 | 
						|
	Xlsx = 1
 | 
						|
}
 | 
						|
 | 
						|
export const enum PaperSize {
 | 
						|
	Legal = 5,
 | 
						|
	Executive = 7,
 | 
						|
	A4 = 9,
 | 
						|
	A5 = 11,
 | 
						|
	B5 = 13,
 | 
						|
	Envelope_10 = 20,
 | 
						|
	Envelope_DL = 27,
 | 
						|
	Envelope_C5 = 28,
 | 
						|
	Envelope_B5 = 34,
 | 
						|
	Envelope_Monarch = 37,
 | 
						|
	Double_Japan_Postcard_Rotated = 82,
 | 
						|
	K16_197x273_mm = 119,
 | 
						|
}
 | 
						|
 | 
						|
export interface WorksheetViewCommon {
 | 
						|
	/**
 | 
						|
	 * Sets the worksheet view's orientation to right-to-left, `false` by default
 | 
						|
	 */
 | 
						|
	rightToLeft: boolean;
 | 
						|
 | 
						|
	/**
 | 
						|
	 * The currently selected cell
 | 
						|
	 */
 | 
						|
	activeCell: string;
 | 
						|
 | 
						|
	/**
 | 
						|
	 * Shows or hides the ruler in Page Layout, `true` by default
 | 
						|
	 */
 | 
						|
	showRuler: boolean;
 | 
						|
 | 
						|
	/**
 | 
						|
	 * Shows or hides the row and column headers (e.g. A1, B1 at the top and 1,2,3 on the left,
 | 
						|
	 * `true` by default
 | 
						|
	 */
 | 
						|
	showRowColHeaders: boolean;
 | 
						|
 | 
						|
	/**
 | 
						|
	 * Shows or hides the gridlines (shown for cells where borders have not been defined),
 | 
						|
	 * `true` by default
 | 
						|
	 */
 | 
						|
	showGridLines: boolean;
 | 
						|
 | 
						|
	/**
 | 
						|
	 * 	Percentage zoom to use for the view, `100` by default
 | 
						|
	 */
 | 
						|
	zoomScale: number;
 | 
						|
 | 
						|
	/**
 | 
						|
	 * 	Normal zoom for the view, `100` by default
 | 
						|
	 */
 | 
						|
	zoomScaleNormal: number;
 | 
						|
}
 | 
						|
 | 
						|
export interface WorksheetViewNormal {
 | 
						|
	/**
 | 
						|
	 * Controls the view state
 | 
						|
	 */
 | 
						|
	state: 'normal';
 | 
						|
 | 
						|
	/**
 | 
						|
	 * Presentation style
 | 
						|
	 */
 | 
						|
	style: 'pageBreakPreview' | 'pageLayout';
 | 
						|
}
 | 
						|
 | 
						|
export interface WorksheetViewFrozen {
 | 
						|
	/**
 | 
						|
	 * Where a number of rows and columns to the top and left are frozen in place.
 | 
						|
	 * Only the bottom left section will scroll
 | 
						|
	 */
 | 
						|
	state: 'frozen';
 | 
						|
 | 
						|
	/**
 | 
						|
	 * Presentation style
 | 
						|
	 */
 | 
						|
	style?: 'pageBreakPreview';
 | 
						|
 | 
						|
	/**
 | 
						|
	 * How many columns to freeze. To freeze rows only, set this to 0 or undefined
 | 
						|
	 */
 | 
						|
	xSplit?: number;
 | 
						|
 | 
						|
	/**
 | 
						|
	 * How many rows to freeze. To freeze columns only, set this to 0 or undefined
 | 
						|
	 */
 | 
						|
	ySplit?: number;
 | 
						|
 | 
						|
	/**
 | 
						|
	 * Which cell will be top-left in the bottom-right pane. Note: cannot be a frozen cell.
 | 
						|
	 * Defaults to first unfrozen cell
 | 
						|
	 */
 | 
						|
	topLeftCell?: string;
 | 
						|
}
 | 
						|
 | 
						|
export interface WorksheetViewSplit {
 | 
						|
	/**
 | 
						|
	 * Where the view is split into 4 sections, each semi-independently scrollable.
 | 
						|
	 */
 | 
						|
	state: 'split';
 | 
						|
 | 
						|
	/**
 | 
						|
	 * Presentation style
 | 
						|
	 */
 | 
						|
	style?: 'pageBreakPreview' | 'pageLayout';
 | 
						|
 | 
						|
	/**
 | 
						|
	 * How many points from the left to place the splitter.
 | 
						|
	 * To split vertically, set this to 0 or undefined
 | 
						|
	 */
 | 
						|
	xSplit?: number;
 | 
						|
 | 
						|
	/**
 | 
						|
	 * How many points from the top to place the splitter.
 | 
						|
	 * To split horizontally, set this to 0 or undefined
 | 
						|
	 */
 | 
						|
	ySplit?: number;
 | 
						|
 | 
						|
	/**
 | 
						|
	 * Which cell will be top-left in the bottom-right pane
 | 
						|
	 */
 | 
						|
	topLeftCell?: string;
 | 
						|
 | 
						|
	/**
 | 
						|
	 * Which pane will be active
 | 
						|
	 */
 | 
						|
	activePane?: 'topLeft' | 'topRight' | 'bottomLeft' | 'bottomRight';
 | 
						|
}
 | 
						|
 | 
						|
export type WorksheetView =
 | 
						|
	& WorksheetViewCommon
 | 
						|
	& (WorksheetViewNormal | WorksheetViewFrozen | WorksheetViewSplit);
 | 
						|
 | 
						|
export interface WorkbookView {
 | 
						|
	x: number;
 | 
						|
	y: number;
 | 
						|
	width: number;
 | 
						|
	height: number;
 | 
						|
	firstSheet: number;
 | 
						|
	activeTab: number;
 | 
						|
	visibility: string;
 | 
						|
}
 | 
						|
 | 
						|
export type FillPatterns =
 | 
						|
	| 'none' | 'solid'
 | 
						|
	| 'darkVertical' | 'darkHorizontal' | 'darkGrid' | 'darkTrellis' | 'darkDown' | 'darkUp'
 | 
						|
	| 'lightVertical' | 'lightHorizontal' | 'lightGrid' | 'lightTrellis' | 'lightDown' | 'lightUp'
 | 
						|
	| 'darkGray' | 'mediumGray' | 'lightGray' | 'gray125' | 'gray0625';
 | 
						|
 | 
						|
export interface FillPattern {
 | 
						|
	type: 'pattern';
 | 
						|
	pattern: FillPatterns;
 | 
						|
	fgColor?: Partial<Color>;
 | 
						|
	bgColor?: Partial<Color>;
 | 
						|
}
 | 
						|
 | 
						|
export interface GradientStop {
 | 
						|
	position: number;
 | 
						|
	color: Partial<Color>;
 | 
						|
}
 | 
						|
 | 
						|
export interface FillGradientAngle {
 | 
						|
	type: 'gradient';
 | 
						|
	gradient: 'angle';
 | 
						|
 | 
						|
	/**
 | 
						|
	 * For 'angle' gradient, specifies the direction of the gradient. 0 is from the left to the right.
 | 
						|
	 * Values from 1 - 359 rotates the direction clockwise
 | 
						|
	 */
 | 
						|
	degree: number;
 | 
						|
 | 
						|
	/**
 | 
						|
	 * Specifies the gradient colour sequence. Is an array of objects containing position and
 | 
						|
	 * color starting with position 0 and ending with position 1.
 | 
						|
	 * Intermediary positions may be used to specify other colours on the path.
 | 
						|
	 */
 | 
						|
	stops: GradientStop[];
 | 
						|
}
 | 
						|
 | 
						|
export interface FillGradientPath {
 | 
						|
	type: 'gradient';
 | 
						|
	gradient: 'path';
 | 
						|
 | 
						|
	/**
 | 
						|
	 * For 'path' gradient. Specifies the relative coordinates for the start of the path.
 | 
						|
	 * 'left' and 'top' values range from 0 to 1
 | 
						|
	 */
 | 
						|
	center: { left: number; top: number };
 | 
						|
 | 
						|
	/**
 | 
						|
	 * Specifies the gradient colour sequence. Is an array of objects containing position and
 | 
						|
	 * color starting with position 0 and ending with position 1.
 | 
						|
	 * Intermediary positions may be used to specify other colours on the path.
 | 
						|
	 */
 | 
						|
	stops: GradientStop[];
 | 
						|
}
 | 
						|
 | 
						|
export type Fill = FillPattern | FillGradientAngle | FillGradientPath;
 | 
						|
 | 
						|
export interface Font {
 | 
						|
	name: string;
 | 
						|
	size: number;
 | 
						|
	family: number;
 | 
						|
	scheme: 'minor' | 'major' | 'none';
 | 
						|
	charset: number;
 | 
						|
	color: Partial<Color>;
 | 
						|
	bold: boolean;
 | 
						|
	italic: boolean;
 | 
						|
	underline: boolean | 'none' | 'single' | 'double' | 'singleAccounting' | 'doubleAccounting';
 | 
						|
	vertAlign: 'superscript' | 'subscript';
 | 
						|
	strike: boolean;
 | 
						|
	outline: boolean;
 | 
						|
}
 | 
						|
 | 
						|
export type BorderStyle =
 | 
						|
	| 'thin' | 'dotted' | 'hair' | 'medium' | 'double' | 'thick' | 'dashDot'
 | 
						|
	| 'dashDotDot' | 'slantDashDot' | 'mediumDashed' | 'mediumDashDotDot' | 'mediumDashDot';
 | 
						|
 | 
						|
export interface Color {
 | 
						|
	/**
 | 
						|
	 * Hex string for alpha-red-green-blue e.g. FF00FF00
 | 
						|
	 */
 | 
						|
	argb: string;
 | 
						|
 | 
						|
	/**
 | 
						|
	 * Choose a theme by index
 | 
						|
	 */
 | 
						|
	theme: number;
 | 
						|
}
 | 
						|
 | 
						|
export interface Border {
 | 
						|
	style: BorderStyle;
 | 
						|
	color: Partial<Color>;
 | 
						|
}
 | 
						|
 | 
						|
export interface BorderDiagonal extends Border {
 | 
						|
	up: boolean;
 | 
						|
	down: boolean;
 | 
						|
}
 | 
						|
 | 
						|
export interface Borders {
 | 
						|
	top: Partial<Border>;
 | 
						|
	left: Partial<Border>;
 | 
						|
	bottom: Partial<Border>;
 | 
						|
	right: Partial<Border>;
 | 
						|
	diagonal: Partial<BorderDiagonal>;
 | 
						|
}
 | 
						|
 | 
						|
export interface Margins {
 | 
						|
	top: number;
 | 
						|
	left: number;
 | 
						|
	bottom: number;
 | 
						|
	right: number;
 | 
						|
	header: number;
 | 
						|
	footer: number;
 | 
						|
}
 | 
						|
 | 
						|
export declare enum ReadingOrder {
 | 
						|
	LeftToRight = 1,
 | 
						|
	RightToLeft = 2,
 | 
						|
}
 | 
						|
 | 
						|
export interface Alignment {
 | 
						|
	horizontal: 'left' | 'center' | 'right' | 'fill' | 'justify' | 'centerContinuous' | 'distributed';
 | 
						|
	vertical: 'top' | 'middle' | 'bottom' | 'distributed' | 'justify';
 | 
						|
	wrapText: boolean;
 | 
						|
	shrinkToFit: boolean;
 | 
						|
	indent: number;
 | 
						|
	readingOrder: 'rtl' | 'ltr';
 | 
						|
	textRotation: number | 'vertical';
 | 
						|
}
 | 
						|
 | 
						|
export interface Protection {
 | 
						|
	locked: boolean;
 | 
						|
}
 | 
						|
 | 
						|
export interface Style {
 | 
						|
	numFmt: string;
 | 
						|
	font: Partial<Font>;
 | 
						|
	alignment: Partial<Alignment>;
 | 
						|
	protection: Partial<Protection>;
 | 
						|
	border: Partial<Borders>;
 | 
						|
	fill: Fill;
 | 
						|
}
 | 
						|
 | 
						|
export type DataValidationOperator =
 | 
						|
	| 'between' | 'notBetween' | 'equal' | 'notEqual' | 'greaterThan' | 'lessThan'
 | 
						|
	| 'greaterThanOrEqual' | 'lessThanOrEqual';
 | 
						|
 | 
						|
export interface DataValidation {
 | 
						|
	type: 'list' | 'whole' | 'decimal' | 'date' | 'textLength' | 'custom';
 | 
						|
	formulae: any[];
 | 
						|
	allowBlank?: boolean;
 | 
						|
	operator?: DataValidationOperator;
 | 
						|
	error?: string;
 | 
						|
	errorTitle?: string;
 | 
						|
	errorStyle?: string;
 | 
						|
	prompt?: string;
 | 
						|
	promptTitle?: string;
 | 
						|
	showErrorMessage?: boolean;
 | 
						|
	showInputMessage?: boolean;
 | 
						|
}
 | 
						|
 | 
						|
export declare enum ErrorValue {
 | 
						|
	NotApplicable = '#N/A',
 | 
						|
	Ref = '#REF!',
 | 
						|
	Name = '#NAME?',
 | 
						|
	DivZero = '#DIV/0!',
 | 
						|
	Null = '#NULL!',
 | 
						|
	Value = '#VALUE!',
 | 
						|
	Num = '#NUM!',
 | 
						|
}
 | 
						|
 | 
						|
export interface CellErrorValue {
 | 
						|
	error: '#N/A' | '#REF!' | '#NAME?' | '#DIV/0!' | '#NULL!' | '#VALUE!' | '#NUM!';
 | 
						|
}
 | 
						|
 | 
						|
export interface RichText {
 | 
						|
	text: string;
 | 
						|
	font?: Partial<Font>;
 | 
						|
}
 | 
						|
 | 
						|
export interface CellRichTextValue {
 | 
						|
	richText: RichText[];
 | 
						|
}
 | 
						|
 | 
						|
export interface CellHyperlinkValue {
 | 
						|
	text: string;
 | 
						|
	hyperlink: string;
 | 
						|
}
 | 
						|
 | 
						|
export interface CellFormulaValue {
 | 
						|
	formula: string;
 | 
						|
	result?: number | string | Date | { error: CellErrorValue };
 | 
						|
	date1904: boolean;
 | 
						|
}
 | 
						|
 | 
						|
export interface CellSharedFormulaValue {
 | 
						|
	sharedFormula: string;
 | 
						|
	readonly formula?: string;
 | 
						|
	result?: number | string | Date | { error: CellErrorValue };
 | 
						|
	date1904: boolean;
 | 
						|
}
 | 
						|
 | 
						|
export declare enum ValueType {
 | 
						|
	Null = 0,
 | 
						|
	Merge = 1,
 | 
						|
	Number = 2,
 | 
						|
	String = 3,
 | 
						|
	Date = 4,
 | 
						|
	Hyperlink = 5,
 | 
						|
	Formula = 6,
 | 
						|
	SharedString = 7,
 | 
						|
	RichText = 8,
 | 
						|
	Boolean = 9,
 | 
						|
	Error = 10
 | 
						|
}
 | 
						|
 | 
						|
export declare enum FormulaType {
 | 
						|
	None = 0,
 | 
						|
	Master = 1,
 | 
						|
	Shared = 2
 | 
						|
}
 | 
						|
 | 
						|
export type CellValue =
 | 
						|
	| null | number | string | boolean | Date | undefined
 | 
						|
	| CellErrorValue
 | 
						|
	| CellRichTextValue | CellHyperlinkValue
 | 
						|
	| CellFormulaValue | CellSharedFormulaValue;
 | 
						|
 | 
						|
 | 
						|
	export interface CommentMargins {
 | 
						|
		insetmode: 'auto' | 'custom';
 | 
						|
		inset: Number[];
 | 
						|
	}
 | 
						|
 | 
						|
	export interface CommentProtection {
 | 
						|
		locked: 'True' | 'False';
 | 
						|
		lockText: 'True' | 'False';
 | 
						|
	}
 | 
						|
 | 
						|
	export type CommentEditAs = 'twoCells' | 'oneCells' | 'absolute';
 | 
						|
 | 
						|
	export interface Comment {
 | 
						|
		texts?: RichText[];
 | 
						|
		margins?: Partial<CommentMargins>;
 | 
						|
		protection?: Partial<CommentProtection>;
 | 
						|
		editAs?: CommentEditAs;
 | 
						|
	}
 | 
						|
 | 
						|
export interface CellModel {
 | 
						|
	address: Address;
 | 
						|
	style: Style;
 | 
						|
	type: ValueType;
 | 
						|
	text?: string;
 | 
						|
	hyperlink?: string;
 | 
						|
	value?: CellValue;
 | 
						|
	master: string;
 | 
						|
	formula?: string;
 | 
						|
	sharedFormula?: string;
 | 
						|
	result?: string | number | any;
 | 
						|
	comment: Comment;
 | 
						|
}
 | 
						|
 | 
						|
export interface Cell extends Style, Address {
 | 
						|
	readonly worksheet: Worksheet;
 | 
						|
	readonly workbook: Workbook;
 | 
						|
 | 
						|
	readonly effectiveType: ValueType;
 | 
						|
	readonly isMerged: boolean;
 | 
						|
	readonly master: Cell;
 | 
						|
	readonly isHyperlink: boolean;
 | 
						|
	readonly hyperlink: string;	// todo
 | 
						|
	readonly text: string;
 | 
						|
	readonly fullAddress: {
 | 
						|
		sheetName: string;
 | 
						|
		address: string;
 | 
						|
		row: number;
 | 
						|
		col: number;
 | 
						|
	};
 | 
						|
	model: CellModel;
 | 
						|
	/**
 | 
						|
	 * Assign (or get) a name for a cell (will overwrite any other names that cell had)
 | 
						|
	 */
 | 
						|
	name: string;
 | 
						|
 | 
						|
	/**
 | 
						|
	 * Assign (or get) an array of names for a cell (cells can have more than one name)
 | 
						|
	 */
 | 
						|
	names: string[];
 | 
						|
 | 
						|
	/**
 | 
						|
	 * Cells can define what values are valid or not and provide
 | 
						|
	 * prompting to the user to help guide them.
 | 
						|
	 */
 | 
						|
	dataValidation: DataValidation;
 | 
						|
 | 
						|
	/**
 | 
						|
	 * Value of the cell
 | 
						|
	 */
 | 
						|
	value: CellValue;
 | 
						|
 | 
						|
	/**
 | 
						|
	 * comment of the cell
 | 
						|
	 */
 | 
						|
	note: string | Comment;
 | 
						|
 | 
						|
	/**
 | 
						|
	 * convenience getter to access the formula
 | 
						|
	 */
 | 
						|
	readonly formula: string;
 | 
						|
 | 
						|
	/**
 | 
						|
	 * convenience getter to access the formula result
 | 
						|
	 */
 | 
						|
	readonly result: number | string | Date;
 | 
						|
 | 
						|
	/**
 | 
						|
	 * The type of the cell's value
 | 
						|
	 */
 | 
						|
	readonly type: ValueType;
 | 
						|
 | 
						|
	/**
 | 
						|
	 * The type of the cell's formula
 | 
						|
	 */
 | 
						|
	readonly formulaType: FormulaType;
 | 
						|
 | 
						|
	/**
 | 
						|
	 * The styles of the cell
 | 
						|
	 */
 | 
						|
	style: Partial<Style>;
 | 
						|
 | 
						|
	addName(name: string): void;
 | 
						|
 | 
						|
	/**
 | 
						|
	 * Remove a name from a cell
 | 
						|
	 */
 | 
						|
	removeName(name: string): void;
 | 
						|
	removeAllNames(): void;
 | 
						|
 | 
						|
	destroy(): void;
 | 
						|
	toCsvString(): string;
 | 
						|
	release(): void;
 | 
						|
	addMergeRef(): void;
 | 
						|
	releaseMergeRef(): void;
 | 
						|
	merge(master: Cell, ignoreStyle?: boolean): void;
 | 
						|
	unmerge(): void;
 | 
						|
	isMergedTo(master: Cell): boolean;
 | 
						|
	toString(): string;
 | 
						|
}
 | 
						|
 | 
						|
export interface RowModel {
 | 
						|
	cells: CellModel[];
 | 
						|
	number: number;
 | 
						|
	min: number;
 | 
						|
	max: number;
 | 
						|
	height: number;
 | 
						|
	style: Partial<Style>;
 | 
						|
	hidden: boolean;
 | 
						|
	outlineLevel: number;
 | 
						|
	collapsed: boolean;
 | 
						|
}
 | 
						|
 | 
						|
export interface Row extends Style {
 | 
						|
	readonly worksheet: Worksheet;
 | 
						|
	readonly hasValues: boolean;
 | 
						|
	readonly dimensions: number;
 | 
						|
	model: Partial<RowModel> | null;
 | 
						|
	/**
 | 
						|
	 * Set a specific row height
 | 
						|
	 */
 | 
						|
	height: number;
 | 
						|
 | 
						|
	/**
 | 
						|
	 * Make row hidden
 | 
						|
	 */
 | 
						|
	hidden: boolean;
 | 
						|
 | 
						|
	/**
 | 
						|
	 * Get a row as a sparse array
 | 
						|
	 */
 | 
						|
	// readonly values: CellValue[];
 | 
						|
	values: CellValue[] | { [key: string]: CellValue };
 | 
						|
 | 
						|
	/**
 | 
						|
	 * Set an outline level for rows
 | 
						|
	 */
 | 
						|
	outlineLevel?: number;
 | 
						|
 | 
						|
	/**
 | 
						|
	 * The row number
 | 
						|
	 */
 | 
						|
	readonly number: number;
 | 
						|
 | 
						|
	/**
 | 
						|
	 * Indicate the collapsed state based on outlineLevel
 | 
						|
	 */
 | 
						|
	readonly collapsed: boolean;
 | 
						|
 | 
						|
	/**
 | 
						|
	 * Number of cells including empty ones
 | 
						|
	 */
 | 
						|
	readonly cellCount: number;
 | 
						|
 | 
						|
	/**
 | 
						|
	 * Number of non-empty cells
 | 
						|
	 */
 | 
						|
	readonly actualCellCount: number;
 | 
						|
 | 
						|
	/**
 | 
						|
	 * Get cell by number, column letter or column key
 | 
						|
	 */
 | 
						|
	getCell(indexOrKey: number | string): Cell;
 | 
						|
 | 
						|
	findCell(colNumber: number): Cell | undefined;
 | 
						|
 | 
						|
	getCellEx(address: Address): Cell;
 | 
						|
 | 
						|
	/**
 | 
						|
	 * Iterate over all non-null cells in a row
 | 
						|
	 */
 | 
						|
	eachCell(callback: (cell: Cell, colNumber: number) => void): void;
 | 
						|
 | 
						|
	/**
 | 
						|
	 * Iterate over all cells in a row (including empty cells)
 | 
						|
	 */
 | 
						|
	eachCell(opt: { includeEmpty: boolean }, callback: (cell: Cell, colNumber: number) => void): void;
 | 
						|
 | 
						|
	/**
 | 
						|
	 * Cut one or more cells (cells to the right are shifted left)
 | 
						|
	 *
 | 
						|
	 * Note: this operation will not affect other rows
 | 
						|
	 */
 | 
						|
	splice(start: number, count: number, ...insert: any[]): void;
 | 
						|
 | 
						|
	/**
 | 
						|
	 * Commit a completed row to stream
 | 
						|
	 */
 | 
						|
	commit(): void;
 | 
						|
	destroy(): void;
 | 
						|
	addPageBreak(lft?: number, rght?: number): void;
 | 
						|
}
 | 
						|
 | 
						|
export interface Column {
 | 
						|
	/**
 | 
						|
	 * Can be a string to set one row high header or an array to set multi-row high header
 | 
						|
	 */
 | 
						|
	header?: string | string[];
 | 
						|
 | 
						|
	/**
 | 
						|
	 * The name of the properties associated with this column in each row
 | 
						|
	 */
 | 
						|
	key?: string;
 | 
						|
 | 
						|
	/**
 | 
						|
	 * The width of the column
 | 
						|
	 */
 | 
						|
	width?: number;
 | 
						|
 | 
						|
	/**
 | 
						|
	 * Set an outline level for columns
 | 
						|
	 */
 | 
						|
	outlineLevel: number;
 | 
						|
 | 
						|
	/**
 | 
						|
	 * Hides the column
 | 
						|
	 */
 | 
						|
	hidden: boolean;
 | 
						|
 | 
						|
	/**
 | 
						|
	 * Styles applied to the column
 | 
						|
	 */
 | 
						|
	style: Partial<Style>;
 | 
						|
 | 
						|
	/**
 | 
						|
	 * The cell values in the column
 | 
						|
	 */
 | 
						|
	values: ReadonlyArray<CellValue>;
 | 
						|
 | 
						|
	/**
 | 
						|
	 * Column letter key
 | 
						|
	 */
 | 
						|
	readonly letter: string;
 | 
						|
	readonly number: number;
 | 
						|
	readonly worksheet: Worksheet;
 | 
						|
	readonly isCustomWidth: boolean;
 | 
						|
	readonly headers: string[];
 | 
						|
	readonly isDefault: boolean;
 | 
						|
	readonly headerCount: number;
 | 
						|
 | 
						|
	/**
 | 
						|
	 * Below properties read from style
 | 
						|
	 */
 | 
						|
	border?: Partial<Borders>;
 | 
						|
	fill?: Fill;
 | 
						|
	numFmt?: string;
 | 
						|
	font?: Partial<Font>;
 | 
						|
	alignment?: Partial<Alignment>;
 | 
						|
	protection?: Partial<Protection>;
 | 
						|
 | 
						|
	toString(): string
 | 
						|
	equivalentTo(other: Column): boolean
 | 
						|
 | 
						|
	/**
 | 
						|
	 * indicate the collapsed state based on outlineLevel
 | 
						|
	 */
 | 
						|
	readonly collapsed: boolean;
 | 
						|
 | 
						|
	/**
 | 
						|
	 * Iterate over all current cells in this column
 | 
						|
	 */
 | 
						|
	eachCell(callback: (cell: Cell, rowNumber: number) => void): void;
 | 
						|
 | 
						|
	/**
 | 
						|
	 * Iterate over all current cells in this column including empty cells
 | 
						|
	 */
 | 
						|
	eachCell(opt: { includeEmpty: boolean }, callback: (cell: Cell, rowNumber: number) => void): void;
 | 
						|
 | 
						|
	defn: any; //todo
 | 
						|
}
 | 
						|
export interface PageSetup {
 | 
						|
	/**
 | 
						|
	 * Whitespace on the borders of the page. Units are inches.
 | 
						|
	 */
 | 
						|
	margins: Margins;
 | 
						|
 | 
						|
	/**
 | 
						|
	 * Orientation of the page - i.e. taller (`'portrait'`) or wider (`'landscape'`).
 | 
						|
	 *
 | 
						|
	 * `'portrait'` by default
 | 
						|
	 */
 | 
						|
	orientation: 'portrait' | 'landscape';
 | 
						|
 | 
						|
	/**
 | 
						|
	 * Horizontal Dots per Inch. Default value is 4294967295
 | 
						|
	 */
 | 
						|
	horizontalDpi: number;
 | 
						|
 | 
						|
	/**
 | 
						|
	 * Vertical Dots per Inch. Default value is 4294967295
 | 
						|
	 */
 | 
						|
	verticalDpi: number;
 | 
						|
 | 
						|
	/**
 | 
						|
	 * Whether to use fitToWidth and fitToHeight or scale settings.
 | 
						|
	 *
 | 
						|
	 * Default is based on presence of these settings in the pageSetup object - if both are present,
 | 
						|
	 * scale wins (i.e. default will be false)
 | 
						|
	 */
 | 
						|
	fitToPage: boolean;
 | 
						|
 | 
						|
	/**
 | 
						|
	 * How many pages wide the sheet should print on to. Active when fitToPage is true
 | 
						|
	 *
 | 
						|
	 * Default is 1
 | 
						|
	 */
 | 
						|
	fitToWidth: number;
 | 
						|
 | 
						|
	/**
 | 
						|
	 * How many pages high the sheet should print on to. Active when fitToPage is true
 | 
						|
	 *
 | 
						|
	 * Default is 1
 | 
						|
	 */
 | 
						|
	fitToHeight: number;
 | 
						|
 | 
						|
	/**
 | 
						|
	 * Percentage value to increase or reduce the size of the print. Active when fitToPage is false
 | 
						|
	 *
 | 
						|
	 * Default is 100
 | 
						|
	 */
 | 
						|
	scale: number;
 | 
						|
 | 
						|
	/**
 | 
						|
	 * Which order to print the pages.
 | 
						|
	 *
 | 
						|
	 * Default is `downThenOver`
 | 
						|
	 */
 | 
						|
	pageOrder: 'downThenOver' | 'overThenDown';
 | 
						|
 | 
						|
	/**
 | 
						|
	 * Print without colour
 | 
						|
	 *
 | 
						|
	 * false by default
 | 
						|
	 */
 | 
						|
	blackAndWhite: boolean;
 | 
						|
 | 
						|
	/**
 | 
						|
	 * Print with less quality (and ink)
 | 
						|
	 *
 | 
						|
	 * false by default
 | 
						|
	 */
 | 
						|
	draft: boolean;
 | 
						|
 | 
						|
	/**
 | 
						|
	 * Where to place comments
 | 
						|
	 *
 | 
						|
	 * Default is `None`
 | 
						|
	 */
 | 
						|
	cellComments: 'atEnd' | 'asDisplayed' | 'None';
 | 
						|
 | 
						|
	/**
 | 
						|
	 * Where to show errors
 | 
						|
	 *
 | 
						|
	 * Default is `displayed`
 | 
						|
	 */
 | 
						|
	errors: 'dash' | 'blank' | 'NA' | 'displayed';
 | 
						|
 | 
						|
	/**
 | 
						|
	 * 	What paper size to use (see below)
 | 
						|
	 *
 | 
						|
	 * | Name                          | Value       |
 | 
						|
	 * | ----------------------------- | ---------   |
 | 
						|
	 * | Letter                        | `undefined` |
 | 
						|
	 * | Legal                         |  `5`        |
 | 
						|
	 * | Executive                     |  `7`        |
 | 
						|
	 * | A4                            |  `9`        |
 | 
						|
	 * | A5                            |  `11`       |
 | 
						|
	 * | B5 (JIS)                      |  `13`       |
 | 
						|
	 * | Envelope #10                  |  `20`       |
 | 
						|
	 * | Envelope DL                   |  `27`       |
 | 
						|
	 * | Envelope C5                   |  `28`       |
 | 
						|
	 * | Envelope B5                   |  `34`       |
 | 
						|
	 * | Envelope Monarch              |  `37`       |
 | 
						|
	 * | Double Japan Postcard Rotated |  `82`       |
 | 
						|
	 * | 16K 197x273 mm                |  `119`      |
 | 
						|
	 */
 | 
						|
	paperSize: PaperSize;
 | 
						|
 | 
						|
	/**
 | 
						|
	 * Whether to show the row numbers and column letters, `false` by default
 | 
						|
	 */
 | 
						|
	showRowColHeaders: boolean;
 | 
						|
 | 
						|
	/**
 | 
						|
	 * Whether to show grid lines, `false` by default
 | 
						|
	 */
 | 
						|
	showGridLines: boolean;
 | 
						|
 | 
						|
	/**
 | 
						|
	 * Which number to use for the first page
 | 
						|
	 */
 | 
						|
	firstPageNumber: number;
 | 
						|
 | 
						|
	/**
 | 
						|
	 * 	Whether to center the sheet data horizontally, `false` by default
 | 
						|
	 */
 | 
						|
	horizontalCentered: boolean;
 | 
						|
 | 
						|
	/**
 | 
						|
	 * 	Whether to center the sheet data vertically, `false` by default
 | 
						|
	 */
 | 
						|
	verticalCentered: boolean;
 | 
						|
 | 
						|
	/**
 | 
						|
	 * Set Print Area for a sheet, e.g. `'A1:G20'`
 | 
						|
	 */
 | 
						|
	printArea: string;
 | 
						|
 | 
						|
	/**
 | 
						|
	 * Repeat specific rows on every printed page, e.g. `'1:3'`
 | 
						|
	 */
 | 
						|
	printTitlesRow: string;
 | 
						|
 | 
						|
	/**
 | 
						|
	 * Repeat specific columns on every printed page, e.g. `'A:C'`
 | 
						|
	 */
 | 
						|
	printTitlesColumn: string;
 | 
						|
}
 | 
						|
 | 
						|
export interface HeaderFooter {
 | 
						|
	/**
 | 
						|
	 * Set the value of differentFirst as true, which indicates that headers/footers for first page are different from the other pages, `false` by default
 | 
						|
	 */
 | 
						|
	differentFirst: boolean,
 | 
						|
	/**
 | 
						|
	 * Set the value of differentOddEven as true, which indicates that headers/footers for odd and even pages are different, `false` by default
 | 
						|
	 */
 | 
						|
	differentOddEven: boolean,
 | 
						|
	/**
 | 
						|
	 * Set header string for odd pages, could format the string and `null` by default
 | 
						|
	 */
 | 
						|
	oddHeader: string,
 | 
						|
	/**
 | 
						|
	 * Set footer string for odd pages, could format the string and `null` by default
 | 
						|
	 */
 | 
						|
	oddFooter: string,
 | 
						|
	/**
 | 
						|
	 * Set header string for even pages, could format the string and `null` by default
 | 
						|
	 */
 | 
						|
	evenHeader: string,
 | 
						|
	/**
 | 
						|
	 * Set footer string for even pages, could format the string and `null` by default
 | 
						|
	 */
 | 
						|
	evenFooter: string,
 | 
						|
	/**
 | 
						|
	 * Set header string for the first page, could format the string and `null` by default
 | 
						|
	 */
 | 
						|
	firstHeader: string,
 | 
						|
	/**
 | 
						|
	 * Set footer string for the first page, could format the string and `null` by default
 | 
						|
	 */
 | 
						|
	firstFooter: string
 | 
						|
}
 | 
						|
 | 
						|
export type AutoFilter = string | {
 | 
						|
	from: string | { row: number; column: number };
 | 
						|
	to: string | { row: number; column: number };
 | 
						|
};
 | 
						|
 | 
						|
export interface WorksheetProtection {
 | 
						|
	objects: boolean;
 | 
						|
	scenarios: boolean;
 | 
						|
	selectLockedCells: boolean;
 | 
						|
	selectUnlockedCells: boolean;
 | 
						|
	formatCells: boolean;
 | 
						|
	formatColumns: boolean;
 | 
						|
	formatRows: boolean;
 | 
						|
	insertColumns: boolean;
 | 
						|
	insertRows: boolean;
 | 
						|
	insertHyperlinks: boolean;
 | 
						|
	deleteColumns: boolean;
 | 
						|
	deleteRows: boolean;
 | 
						|
	sort: boolean;
 | 
						|
	autoFilter: boolean;
 | 
						|
	pivotTables: boolean;
 | 
						|
}
 | 
						|
export interface Image {
 | 
						|
	extension: 'jpeg' | 'png' | 'gif';
 | 
						|
	base64?: string;
 | 
						|
	filename?: string;
 | 
						|
	buffer?: Buffer;
 | 
						|
}
 | 
						|
export interface IAnchor {
 | 
						|
	col: number;
 | 
						|
	row: number;
 | 
						|
	nativeCol: number;
 | 
						|
	nativeRow: number;
 | 
						|
	nativeColOff: number;
 | 
						|
	nativeRowOff: number;
 | 
						|
}
 | 
						|
export class Anchor implements IAnchor {
 | 
						|
	col: number;
 | 
						|
	nativeCol: number;
 | 
						|
	nativeColOff: number;
 | 
						|
	nativeRow: number;
 | 
						|
	nativeRowOff: number;
 | 
						|
	row: number;
 | 
						|
 | 
						|
	private readonly colWidth: number;
 | 
						|
	private readonly rowHeight: number;
 | 
						|
	worksheet: Worksheet;
 | 
						|
 | 
						|
	constructor(model?: IAnchor | object);
 | 
						|
}
 | 
						|
export interface ImageRange {
 | 
						|
	tl: Anchor;
 | 
						|
	br: Anchor;
 | 
						|
}
 | 
						|
 | 
						|
export interface ImagePosition {
 | 
						|
	tl: { col: number; row: number };
 | 
						|
	ext: { width: number; height: number };
 | 
						|
}
 | 
						|
 | 
						|
export interface ImageHyperlinkValue {
 | 
						|
	hyperlink: string;
 | 
						|
	tooltip?: string;
 | 
						|
}
 | 
						|
 | 
						|
export interface Range extends Location {
 | 
						|
	sheetName: string;
 | 
						|
 | 
						|
	tl: string;
 | 
						|
	$t$l: string;
 | 
						|
 | 
						|
	br: string;
 | 
						|
	$b$r: string;
 | 
						|
 | 
						|
	range: string;
 | 
						|
	$range: string;
 | 
						|
 | 
						|
	shortRange: string;
 | 
						|
	$shortRange: string;
 | 
						|
 | 
						|
	count: number;
 | 
						|
 | 
						|
	decode(): void;
 | 
						|
	decode(v: Range): void;
 | 
						|
	decode(v: string): void;
 | 
						|
	decode(v: Location): void;
 | 
						|
	decode(top: number, left: number, bottom: number, right: number, sheetName?: string): void;
 | 
						|
	decode(tl: string, br: string, sheetName?: string): void;
 | 
						|
	decode(v: [string, string]): void;
 | 
						|
	decode(v: [string, string, string]): void;
 | 
						|
	decode(v: [number, number, number, number]): void;
 | 
						|
	decode(v: [number, number, number, number, string]): void;
 | 
						|
 | 
						|
	expand(top: number, left: number, bottom: number, right: number): void;
 | 
						|
 | 
						|
	expandRow(row: Row): void;
 | 
						|
 | 
						|
	expandToAddress(addressStr: string): void;
 | 
						|
 | 
						|
	toString(): string;
 | 
						|
 | 
						|
	intersects(other: Range): boolean;
 | 
						|
 | 
						|
	contains(addressStr: string): boolean;
 | 
						|
 | 
						|
	containsEx(address: Partial<{
 | 
						|
		sheetName: string;
 | 
						|
		row: number;
 | 
						|
		col: number;
 | 
						|
	}>): boolean;
 | 
						|
}
 | 
						|
 | 
						|
export interface RowBreak {
 | 
						|
	id: number;
 | 
						|
	max: number;
 | 
						|
	min: number;
 | 
						|
	man: number;
 | 
						|
}
 | 
						|
 | 
						|
export interface WorksheetModel {
 | 
						|
	id: number;
 | 
						|
	name: string;
 | 
						|
	// dataValidations: this.dataValidations.model,
 | 
						|
	properties: WorksheetProperties;
 | 
						|
	pageSetup: Partial<PageSetup>;
 | 
						|
	headerFooter: Partial<HeaderFooter>;
 | 
						|
	rowBreaks: RowBreak[];
 | 
						|
	views: WorksheetView[];
 | 
						|
	autoFilter: AutoFilter;
 | 
						|
	media: Media[];
 | 
						|
}
 | 
						|
export type WorksheetState = 'visible' | 'hidden' | 'veryHidden';
 | 
						|
 | 
						|
export type CellIsOperators = 'equal' | 'greaterThan' | 'lessThan' | 'between';
 | 
						|
 | 
						|
export type ContainsTextOperators = 'containsText' | 'containsBlanks' | 'notContainsBlanks' | 'containsErrors' | 'notContainsErrors';
 | 
						|
 | 
						|
export type TimePeriodTypes = 'lastWeek' | 'thisWeek' | 'nextWeek' | 'yesterday' | 'today' | 'tomorrow' | 'last7Days' | 'lastMonth'
 | 
						|
	| 'thisMonth' | 'nextMonth';
 | 
						|
 | 
						|
export type IconSetTypes = '5Arrows' | '5ArrowsGray' | '5Boxes' | '5Quarters' | '5Rating' | '4Arrows' | '4ArrowsGray'
 | 
						|
	| '4Rating' | '4RedToBlack' | '4TrafficLights' | 'NoIcons' | '3Arrows' | '3ArrowsGray' | '3Flags' | '3Signs'
 | 
						|
	| '3Stars' | '3Symbols' | '3Symbols2' | '3TrafficLights1' | '3TrafficLights2' | '3Triangles';
 | 
						|
 | 
						|
export type CfvoTypes = 'percentile' | 'percent' | 'num' | 'min' | 'max' | 'formula' | 'autoMin' | 'autoMax';
 | 
						|
 | 
						|
export interface Cvfo {
 | 
						|
	type: CfvoTypes;
 | 
						|
	value?: number;
 | 
						|
}
 | 
						|
export interface ConditionalFormattingBaseRule {
 | 
						|
	priority: number;
 | 
						|
	style?: Partial<Style>;
 | 
						|
}
 | 
						|
export interface ExpressionRuleType extends ConditionalFormattingBaseRule {
 | 
						|
	type: 'expression';
 | 
						|
	formulae?: any[];
 | 
						|
}
 | 
						|
 | 
						|
export interface CellIsRuleType extends ConditionalFormattingBaseRule {
 | 
						|
	type: 'cellIs';
 | 
						|
	formulae?: any[];
 | 
						|
	operator?: CellIsOperators;
 | 
						|
}
 | 
						|
 | 
						|
export interface Top10RuleType extends ConditionalFormattingBaseRule {
 | 
						|
	type: 'top10';
 | 
						|
	rank: number;
 | 
						|
	percent: boolean;
 | 
						|
	bottom: boolean;
 | 
						|
}
 | 
						|
 | 
						|
export interface AboveAverageRuleType extends ConditionalFormattingBaseRule {
 | 
						|
	type: 'aboveAverage';
 | 
						|
	aboveAverage: boolean;
 | 
						|
}
 | 
						|
 | 
						|
export interface ColorScaleRuleType extends ConditionalFormattingBaseRule {
 | 
						|
	type: 'colorScale';
 | 
						|
	cfvo?: Cvfo[];
 | 
						|
	color?: Partial<Color>[];
 | 
						|
}
 | 
						|
 | 
						|
export interface IconSetRuleType extends ConditionalFormattingBaseRule {
 | 
						|
	type: 'iconSet';
 | 
						|
	showValue?: boolean;
 | 
						|
	reverse?: boolean;
 | 
						|
	custom?: boolean;
 | 
						|
	iconSet?: IconSetTypes;
 | 
						|
	cfvo?: Cvfo[];
 | 
						|
}
 | 
						|
 | 
						|
export interface ContainsTextRuleType extends ConditionalFormattingBaseRule {
 | 
						|
	type: 'containsText';
 | 
						|
	operator?: ContainsTextOperators;
 | 
						|
	text?: string;
 | 
						|
}
 | 
						|
 | 
						|
export interface TimePeriodRuleType extends ConditionalFormattingBaseRule {
 | 
						|
	type: 'timePeriod';
 | 
						|
	timePeriod?: TimePeriodTypes;
 | 
						|
}
 | 
						|
 | 
						|
export interface DataBarRuleType extends ConditionalFormattingBaseRule {
 | 
						|
	type: 'dataBar';
 | 
						|
	gradient?: boolean;
 | 
						|
	minLength?: number;
 | 
						|
	maxLength?: number;
 | 
						|
	showValue?: boolean;
 | 
						|
	border?: boolean;
 | 
						|
	negativeBarColorSameAsPositive?: boolean;
 | 
						|
	negativeBarBorderColorSameAsPositive?: boolean;
 | 
						|
	axisPosition?: 'auto' | 'middle' | 'none';
 | 
						|
	direction?: 'context' | 'leftToRight' | 'rightToLeft';
 | 
						|
	cfvo?: Cvfo[];
 | 
						|
}
 | 
						|
 | 
						|
export type ConditionalFormattingRule = ExpressionRuleType | CellIsRuleType | Top10RuleType | AboveAverageRuleType | ColorScaleRuleType | IconSetRuleType
 | 
						|
	| ContainsTextRuleType | TimePeriodRuleType | DataBarRuleType;
 | 
						|
 | 
						|
 | 
						|
export type RowValues = CellValue[] | { [key: string]: CellValue } | undefined | null; 
 | 
						|
 | 
						|
export interface ConditionalFormattingOptions {
 | 
						|
	ref: string;
 | 
						|
	rules: ConditionalFormattingRule[];
 | 
						|
}
 | 
						|
 | 
						|
export interface Worksheet {
 | 
						|
	readonly id: number;
 | 
						|
	name: string;
 | 
						|
	readonly workbook: Workbook;
 | 
						|
	readonly hasMerges: boolean;
 | 
						|
 | 
						|
	readonly dimensions: Range;
 | 
						|
	/**
 | 
						|
	 * Contains information related to how a worksheet is printed
 | 
						|
	 */
 | 
						|
	pageSetup: Partial<PageSetup>;
 | 
						|
 | 
						|
	/**
 | 
						|
	 * Worksheet Header and Footer
 | 
						|
	 */
 | 
						|
	headerFooter: Partial<HeaderFooter>;
 | 
						|
 | 
						|
	/**
 | 
						|
	 * Worksheet State
 | 
						|
	 */
 | 
						|
	state: WorksheetState;
 | 
						|
 | 
						|
	/**
 | 
						|
	 * Worksheet Properties
 | 
						|
	 */
 | 
						|
	properties: WorksheetProperties;
 | 
						|
 | 
						|
	/**
 | 
						|
	 * Open panes representing the sheet
 | 
						|
	 */
 | 
						|
	views: Array<Partial<WorksheetView>>;
 | 
						|
 | 
						|
	/**
 | 
						|
	 * Apply an auto filter to your worksheet.
 | 
						|
	 */
 | 
						|
	autoFilter?: AutoFilter;
 | 
						|
 | 
						|
	destroy(): void;
 | 
						|
 | 
						|
	/**
 | 
						|
	 * A count of the number of rows that have values. If a mid-document row is empty, it will not be included in the count.
 | 
						|
	 */
 | 
						|
	readonly actualRowCount: number;
 | 
						|
 | 
						|
	/**
 | 
						|
	 * The total column size of the document. Equal to the maximum cell count from all of the rows
 | 
						|
	 */
 | 
						|
	readonly columnCount: number;
 | 
						|
 | 
						|
	/**
 | 
						|
	 * Get the last column in a worksheet
 | 
						|
	 */
 | 
						|
	readonly lastColumn: Column;
 | 
						|
 | 
						|
	/**
 | 
						|
	 * A count of the number of columns that have values.
 | 
						|
	 */
 | 
						|
	readonly actualColumnCount: number;
 | 
						|
 | 
						|
	getColumnKey(key: string): Column;
 | 
						|
 | 
						|
	setColumnKey(key: string, value: Column): void;
 | 
						|
 | 
						|
	deleteColumnKey(key: string): void;
 | 
						|
 | 
						|
	eachColumnKey(callback: (col: Column, index: number) => void): void;
 | 
						|
 | 
						|
	/**
 | 
						|
	 * Access an individual columns by key, letter and 1-based column number
 | 
						|
	 */
 | 
						|
	getColumn(indexOrKey: number | string): Column;
 | 
						|
 | 
						|
	/**
 | 
						|
	 * Cut one or more columns (columns to the right are shifted left)
 | 
						|
	 * and optionally insert more
 | 
						|
	 *
 | 
						|
	 * If column properties have been definde, they will be cut or moved accordingly
 | 
						|
	 *
 | 
						|
	 * Known Issue: If a splice causes any merged cells to move, the results may be unpredictable
 | 
						|
	 *
 | 
						|
	 * Also: If the worksheet has more rows than values in the colulmn inserts,
 | 
						|
	 * the rows will still be shifted as if the values existed
 | 
						|
	 */
 | 
						|
	spliceColumns(start: number, count: number, ...insert: any[][]): void;
 | 
						|
 | 
						|
	/**
 | 
						|
	 * Add column headers and define column keys and widths.
 | 
						|
	 *
 | 
						|
	 * Note: these column structures are a workbook-building convenience only,
 | 
						|
	 * apart from the column width, they will not be fully persisted.
 | 
						|
	 */
 | 
						|
	columns: Array<Partial<Column>>;
 | 
						|
 | 
						|
	/**
 | 
						|
	 * The total row size of the document. Equal to the row number of the last row that has values.
 | 
						|
	 */
 | 
						|
	readonly rowCount: number;
 | 
						|
 | 
						|
	/**
 | 
						|
	 * Get the last editable row in a worksheet (or undefined if there are none)
 | 
						|
	 */
 | 
						|
	readonly lastRow: Row | undefined;
 | 
						|
 | 
						|
	/**
 | 
						|
	 * Tries to find and return row for row no, else undefined
 | 
						|
	 * 
 | 
						|
	 * @param row The 1-index row number
 | 
						|
	 */
 | 
						|
	findRow(row: number): Row | undefined;
 | 
						|
 | 
						|
	/**
 | 
						|
	 * Tries to find and return rows for row no start and length, else undefined
 | 
						|
	 * 
 | 
						|
	 * @param start The 1-index starting row number
 | 
						|
	 * @param length The length of the expected array
 | 
						|
	 */
 | 
						|
	findRows(start: number, length: number): Row[] | undefined;
 | 
						|
 | 
						|
	/**
 | 
						|
	 * Cut one or more rows (rows below are shifted up)
 | 
						|
	 * and optionally insert more
 | 
						|
	 *
 | 
						|
	 * Known Issue: If a splice causes any merged cells to move, the results may be unpredictable
 | 
						|
	 */
 | 
						|
	spliceRows(start: number, count: number, ...insert: any[][]): void;
 | 
						|
 | 
						|
	/**
 | 
						|
	 * Add a couple of Rows by key-value, after the last current row, using the column keys,
 | 
						|
	 * or add a row by contiguous Array (assign to columns A, B & C)
 | 
						|
	 */
 | 
						|
	addRow(data: any[] | any, style?: string): Row;
 | 
						|
 | 
						|
	/**
 | 
						|
	 * Add multiple rows by providing an array of arrays or key-value pairs
 | 
						|
	 */
 | 
						|
	addRows(rows: any[], style?: string): Row[];
 | 
						|
 | 
						|
	/**
 | 
						|
	 * Insert a Row by key-value, at the position (shifiting down all rows from position),
 | 
						|
	 * using the column keys, or add a row by contiguous Array (assign to columns A, B & C)
 | 
						|
	 */
 | 
						|
	insertRow(pos: number, value: any[] | any, style?: string): Row;
 | 
						|
 | 
						|
	/**
 | 
						|
	 * Insert multiple rows at position (shifiting down all rows from position)
 | 
						|
	 * by providing an array of arrays or key-value pairs
 | 
						|
	 */
 | 
						|
	insertRows(pos: number, values: any[], style?: string): Row[];
 | 
						|
 | 
						|
	/**
 | 
						|
	 * Duplicate rows and insert new rows
 | 
						|
	 */
 | 
						|
	duplicateRow(rowNum: number, count: number, insert: boolean): void;
 | 
						|
 | 
						|
	/**
 | 
						|
	 * Get or create row by 1-based index
 | 
						|
	 */
 | 
						|
	getRow(index: number): Row;
 | 
						|
 | 
						|
	/**
 | 
						|
	 * Get or create rows by 1-based index
 | 
						|
	 */
 | 
						|
	getRows(start: number, length: number): Row[] | undefined;
 | 
						|
 | 
						|
	/**
 | 
						|
	 * Iterate over all rows that have values in a worksheet
 | 
						|
	 */
 | 
						|
	eachRow(callback: (row: Row, rowNumber: number) => void): void;
 | 
						|
 | 
						|
	/**
 | 
						|
	 * Iterate over all rows (including empty rows) in a worksheet
 | 
						|
	 */
 | 
						|
	eachRow(opt: { includeEmpty: boolean }, callback: (row: Row, rowNumber: number) => void): void;
 | 
						|
 | 
						|
	/**
 | 
						|
	 * return all rows as sparse array
 | 
						|
	 */
 | 
						|
	getSheetValues(): RowValues[];
 | 
						|
 | 
						|
	/**
 | 
						|
	 * returns the cell at [r,c] or address given by r. If not found, return undefined
 | 
						|
	 */
 | 
						|
	findCell(r: number | string, c: number | string): Cell | undefined;
 | 
						|
 | 
						|
	/**
 | 
						|
	 * Get or create cell
 | 
						|
	 */
 | 
						|
	getCell(r: number | string, c?: number | string): Cell;
 | 
						|
 | 
						|
	/**
 | 
						|
	 * Merge cells, either:
 | 
						|
	 *
 | 
						|
	 * tlbr string, e.g. `'A4:B5'`
 | 
						|
	 *
 | 
						|
	 * tl string, br string, e.g. `'G10', 'H11'`
 | 
						|
	 *
 | 
						|
	 * t, l, b, r numbers, e.g. `10,11,12,13`
 | 
						|
	 */
 | 
						|
	mergeCells(): void;
 | 
						|
	mergeCells(v: Range): void;
 | 
						|
	mergeCells(v: string): void;
 | 
						|
	mergeCells(v: Location): void;
 | 
						|
	mergeCells(top: number, left: number, bottom: number, right: number, sheetName?: string): void;
 | 
						|
	mergeCells(tl: string, br: string, sheetName?: string): void;
 | 
						|
	mergeCells(v: [string, string]): void;
 | 
						|
	mergeCells(v: [string, string, string]): void;
 | 
						|
	mergeCells(v: [number, number, number, number]): void;
 | 
						|
	mergeCells(v: [number, number, number, number, string]): void;
 | 
						|
	mergeCellsWithoutStyle(): void;
 | 
						|
	mergeCellsWithoutStyle(v: Range): void;
 | 
						|
	mergeCellsWithoutStyle(v: string): void;
 | 
						|
	mergeCellsWithoutStyle(v: Location): void;
 | 
						|
	mergeCellsWithoutStyle(top: number, left: number, bottom: number, right: number, sheetName?: string): void;
 | 
						|
	mergeCellsWithoutStyle(tl: string, br: string, sheetName?: string): void;
 | 
						|
	mergeCellsWithoutStyle(v: [string, string]): void;
 | 
						|
	mergeCellsWithoutStyle(v: [string, string, string]): void;
 | 
						|
	mergeCellsWithoutStyle(v: [number, number, number, number]): void;
 | 
						|
	mergeCellsWithoutStyle(v: [number, number, number, number, string]): void;
 | 
						|
 | 
						|
	/**
 | 
						|
	 * unmerging the cells breaks the style links
 | 
						|
	 */
 | 
						|
	unMergeCells(): void;
 | 
						|
	unMergeCells(v: Range): void;
 | 
						|
	unMergeCells(v: string): void;
 | 
						|
	unMergeCells(v: Location): void;
 | 
						|
	unMergeCells(top: number, left: number, bottom: number, right: number, sheetName?: string): void;
 | 
						|
	unMergeCells(tl: string, br: string, sheetName?: string): void;
 | 
						|
	unMergeCells(v: [string, string]): void;
 | 
						|
	unMergeCells(v: [string, string, string]): void;
 | 
						|
	unMergeCells(v: [number, number, number, number]): void;
 | 
						|
	unMergeCells(v: [number, number, number, number, string]): void;
 | 
						|
 | 
						|
	fillFormula(range: Range | string | Location, formula: string, results?: ((r: number, c: number) => string | number) | number[] | number[][]): void;
 | 
						|
 | 
						|
	/**
 | 
						|
	 * Using the image id from `Workbook.addImage`, set the background to the worksheet
 | 
						|
	 */
 | 
						|
	addBackgroundImage(imageId: number): void;
 | 
						|
 | 
						|
	getBackgroundImageId(): string;
 | 
						|
 | 
						|
	/**
 | 
						|
	 * Using the image id from `Workbook.addImage`,
 | 
						|
	 * embed an image within the worksheet to cover a range
 | 
						|
	 */
 | 
						|
	addImage(imageId: number, range: string | { editAs?: string; } & ImageRange & { hyperlinks?: ImageHyperlinkValue } | { editAs?: string; } & ImagePosition & { hyperlinks?: ImageHyperlinkValue }): void;
 | 
						|
 | 
						|
	getImages(): Array<{
 | 
						|
		type: 'image',
 | 
						|
		imageId: string;
 | 
						|
		range: ImageRange;
 | 
						|
	}>;
 | 
						|
 | 
						|
	commit(): void;
 | 
						|
 | 
						|
	model: WorksheetModel;
 | 
						|
 | 
						|
	/**
 | 
						|
	 * Worksheet protection
 | 
						|
	 */
 | 
						|
	protect(password: string, options: Partial<WorksheetProtection>): Promise<void>;
 | 
						|
	unprotect(): void;
 | 
						|
 | 
						|
	/**
 | 
						|
	 * Add a new table and return a reference to it
 | 
						|
	 */
 | 
						|
	addTable(tableProperties: TableProperties): Table;
 | 
						|
	/**
 | 
						|
	 * fetch table by name or id
 | 
						|
	 */
 | 
						|
	getTable(name: string): Table;
 | 
						|
	/**
 | 
						|
	 * delete table by name or id
 | 
						|
	 */
 | 
						|
	removeTable(name: string): void;
 | 
						|
	/**
 | 
						|
	 *  fetch table
 | 
						|
	 */
 | 
						|
	getTables(): [Table, void][];
 | 
						|
	/**
 | 
						|
	 * add conditionalFormattingOptions
 | 
						|
	 */
 | 
						|
	addConditionalFormatting(cf: ConditionalFormattingOptions): void;
 | 
						|
 | 
						|
	/**
 | 
						|
	 * delete conditionalFormattingOptions
 | 
						|
	 */
 | 
						|
	removeConditionalFormatting(filter: any): void;
 | 
						|
}
 | 
						|
 | 
						|
export interface CalculationProperties {
 | 
						|
	/**
 | 
						|
	 * Whether the application shall perform a full recalculation when the workbook is opened
 | 
						|
	 */
 | 
						|
	fullCalcOnLoad: boolean
 | 
						|
}
 | 
						|
 | 
						|
export interface WorksheetProperties {
 | 
						|
	/**
 | 
						|
	 * Color of the tab
 | 
						|
	 */
 | 
						|
	tabColor: Partial<Color>;
 | 
						|
 | 
						|
	/**
 | 
						|
	 * The worksheet column outline level (default: 0)
 | 
						|
	 */
 | 
						|
	outlineLevelCol: number;
 | 
						|
 | 
						|
	/**
 | 
						|
	 * The worksheet row outline level (default: 0)
 | 
						|
	 */
 | 
						|
	outlineLevelRow: number;
 | 
						|
 | 
						|
	/**
 | 
						|
	 * Default row height (default: 15)
 | 
						|
	 */
 | 
						|
	defaultRowHeight: number;
 | 
						|
 | 
						|
	/**
 | 
						|
	 * Default column width (optional)
 | 
						|
	 */
 | 
						|
	defaultColWidth?: number;
 | 
						|
 | 
						|
	/**
 | 
						|
	 * default: 55
 | 
						|
	 */
 | 
						|
	dyDescent: number;
 | 
						|
	showGridLines: boolean;
 | 
						|
}
 | 
						|
 | 
						|
export interface AddWorksheetOptions {
 | 
						|
	properties: Partial<WorksheetProperties>;
 | 
						|
	pageSetup: Partial<PageSetup>;
 | 
						|
	headerFooter: Partial<HeaderFooter>;
 | 
						|
	views: Array<Partial<WorksheetView>>;
 | 
						|
	state: WorksheetState;
 | 
						|
}
 | 
						|
 | 
						|
export interface WorkbookProperties {
 | 
						|
	/**
 | 
						|
	 * Set workbook dates to 1904 date system
 | 
						|
	 */
 | 
						|
	date1904: boolean;
 | 
						|
}
 | 
						|
 | 
						|
export interface JSZipGeneratorOptions {
 | 
						|
	/**
 | 
						|
	 * @default DEFLATE
 | 
						|
	 */
 | 
						|
	compression: 'STORE' | 'DEFLATE';
 | 
						|
	compressionOptions: null | {
 | 
						|
		/**
 | 
						|
		 * @default 6
 | 
						|
		 */
 | 
						|
		level: number;
 | 
						|
	};
 | 
						|
}
 | 
						|
 | 
						|
export interface XlsxWriteOptions extends stream.xlsx.WorkbookWriterOptions {
 | 
						|
	/**
 | 
						|
	 * The option passed to JsZip#generateAsync(options)
 | 
						|
	 */
 | 
						|
	zip: Partial<JSZipGeneratorOptions>;
 | 
						|
}
 | 
						|
 | 
						|
export interface Xlsx {
 | 
						|
	/**
 | 
						|
	 * read from a file
 | 
						|
	 */
 | 
						|
	readFile(path: string): Promise<Workbook>;
 | 
						|
 | 
						|
	/**
 | 
						|
	 * read from a stream
 | 
						|
	 * @param stream
 | 
						|
	 */
 | 
						|
	read(stream: import('stream').Stream): Promise<Workbook>;
 | 
						|
 | 
						|
	/**
 | 
						|
	 * load from an array buffer
 | 
						|
	 * @param buffer
 | 
						|
	 */
 | 
						|
	load(buffer: Buffer): Promise<Workbook>;
 | 
						|
 | 
						|
	/**
 | 
						|
	 * write to a buffer
 | 
						|
	 */
 | 
						|
	writeBuffer(options?: Partial<XlsxWriteOptions>): Promise<Buffer>;
 | 
						|
 | 
						|
	/**
 | 
						|
	 * write to a file
 | 
						|
	 */
 | 
						|
	writeFile(path: string, options?: Partial<XlsxWriteOptions>): Promise<void>;
 | 
						|
 | 
						|
	/**
 | 
						|
	 * write to a stream
 | 
						|
	 */
 | 
						|
	write(stream: import('stream').Stream, options?: Partial<XlsxWriteOptions>): Promise<void>;
 | 
						|
}
 | 
						|
 | 
						|
// https://c2fo.io/fast-csv/docs/parsing/options
 | 
						|
 | 
						|
type HeaderArray = (string | undefined | null)[];
 | 
						|
type HeaderTransformFunction = (headers: HeaderArray) => HeaderArray;
 | 
						|
export interface FastCsvParserOptionsArgs {
 | 
						|
	objectMode: boolean;
 | 
						|
	delimiter: string;
 | 
						|
	quote: string | null;
 | 
						|
	escape: string;
 | 
						|
	headers: boolean | HeaderTransformFunction | HeaderArray;
 | 
						|
	renameHeaders: boolean;
 | 
						|
	ignoreEmpty: boolean;
 | 
						|
	comment: string;
 | 
						|
	strictColumnHandling: boolean;
 | 
						|
	discardUnmappedColumns: boolean;
 | 
						|
	trim: boolean;
 | 
						|
	ltrim: boolean;
 | 
						|
	rtrim: boolean;
 | 
						|
	encoding: string;
 | 
						|
	maxRows: number;
 | 
						|
	skipLines: number;
 | 
						|
	skipRows: number;
 | 
						|
}
 | 
						|
 | 
						|
interface QuoteColumnMap {
 | 
						|
	[s: string]: boolean;
 | 
						|
}
 | 
						|
declare type QuoteColumns = boolean | boolean[] | QuoteColumnMap;
 | 
						|
 | 
						|
interface RowMap {
 | 
						|
	[key: string]: any;
 | 
						|
}
 | 
						|
declare type RowHashArray = [string, any][];
 | 
						|
declare type RowArray = string[];
 | 
						|
declare type Rows = RowArray | RowMap | RowHashArray;
 | 
						|
declare type RowTransformCallback = (error?: Error | null, row?: Rows) => void;
 | 
						|
interface RowTransformFunction {
 | 
						|
	(row: Rows, callback: RowTransformCallback): void;
 | 
						|
	(row: Rows): Rows;
 | 
						|
}
 | 
						|
 | 
						|
// https://c2fo.io/fast-csv/docs/formatting/options/
 | 
						|
export interface FastCsvFormatterOptionsArgs {
 | 
						|
	objectMode: boolean;
 | 
						|
	delimiter: string;
 | 
						|
	rowDelimiter: string;
 | 
						|
	quote: string | boolean;
 | 
						|
	escape: string;
 | 
						|
	quoteColumns: QuoteColumns;
 | 
						|
	quoteHeaders: QuoteColumns;
 | 
						|
	headers: null | boolean | string[];
 | 
						|
	includeEndRowDelimiter: boolean;
 | 
						|
	writeBOM: boolean;
 | 
						|
	transform: RowTransformFunction;
 | 
						|
	alwaysWriteHeaders: boolean;
 | 
						|
}
 | 
						|
 | 
						|
export interface CsvReadOptions {
 | 
						|
	dateFormats: string[];
 | 
						|
	map(value: any, index: number): any;
 | 
						|
	sheetName: string;
 | 
						|
	parserOptions: Partial<FastCsvParserOptionsArgs>;
 | 
						|
}
 | 
						|
 | 
						|
export interface CsvWriteOptions {
 | 
						|
	dateFormat: string;
 | 
						|
	dateUTC: boolean;
 | 
						|
	sheetName: string;
 | 
						|
	sheetId: number;
 | 
						|
	encoding: string;
 | 
						|
	map(value: any, index: number): any;
 | 
						|
	includeEmptyRows: boolean;
 | 
						|
	formatterOptions: Partial<FastCsvFormatterOptionsArgs>;
 | 
						|
}
 | 
						|
 | 
						|
export interface Csv {
 | 
						|
	/**
 | 
						|
	 * read from a file
 | 
						|
	 */
 | 
						|
	readFile(path: string, options?: Partial<CsvReadOptions>): Promise<Worksheet>;
 | 
						|
 | 
						|
	/**
 | 
						|
	 * read from a stream
 | 
						|
	 */
 | 
						|
	read(stream: import('stream').Stream, options?: Partial<CsvReadOptions>): Promise<Worksheet>;
 | 
						|
 | 
						|
	/**
 | 
						|
	 * Create input stream for reading
 | 
						|
	 */
 | 
						|
	createInputStream(options?: Partial<CsvReadOptions>): import('events').EventEmitter;
 | 
						|
 | 
						|
	/**
 | 
						|
	 * write to a buffer
 | 
						|
	 */
 | 
						|
	writeBuffer(options?: Partial<CsvWriteOptions>): Promise<Buffer>;
 | 
						|
 | 
						|
	/**
 | 
						|
	 * write to a file
 | 
						|
	 */
 | 
						|
	writeFile(path: string, options?: Partial<CsvWriteOptions>): Promise<void>;
 | 
						|
 | 
						|
	/**
 | 
						|
	 * write to a stream
 | 
						|
	 */
 | 
						|
	write(stream: import('stream').Stream, options?: Partial<CsvWriteOptions>): Promise<void>;
 | 
						|
}
 | 
						|
 | 
						|
export interface Media {
 | 
						|
	type: string;	// image,background
 | 
						|
	name: string;
 | 
						|
	extension: string;
 | 
						|
	buffer: Buffer;
 | 
						|
}
 | 
						|
 | 
						|
export interface Address {
 | 
						|
	sheetName?: string;
 | 
						|
	address: string;
 | 
						|
	col: string;
 | 
						|
	row: string;
 | 
						|
	$col$row: string;
 | 
						|
}
 | 
						|
 | 
						|
export interface Location {
 | 
						|
	top: number;
 | 
						|
	left: number;
 | 
						|
	bottom: number;
 | 
						|
	right: number;
 | 
						|
}
 | 
						|
 | 
						|
export interface CellMatrix {
 | 
						|
	addCell(addressStr: string): void;
 | 
						|
	getCell(addressStr: string): Cell;
 | 
						|
	findCell(addressStr: string): Cell | undefined;
 | 
						|
	findCellAt(sheetName: string, rowNumber: number, colNumber: number): Cell | undefined;
 | 
						|
	addCellEx(address: string | Location): void;
 | 
						|
	getCellEx(address: string | Location): Cell;
 | 
						|
	findCellEx(address: string | Location, create: boolean): Cell | undefined;
 | 
						|
	getCellAt(sheetName: string, rowNumber: number, colNumber: number): Cell;
 | 
						|
	removeCellEx(address: string | Location): void;
 | 
						|
	forEach(callback: (cell: Cell) => void): void;
 | 
						|
	map<T>(callback: (cell: Cell) => T): T[];
 | 
						|
	findSheet(address: string | Location, create: boolean): Cell[] | undefined;
 | 
						|
	findSheetRow(sheet: Cell[][], address: string | Location, create: boolean): Row | undefined;
 | 
						|
	findRowCell(row: any[], address: Address, create: boolean): Cell | undefined;
 | 
						|
}
 | 
						|
 | 
						|
export interface DefinedNamesRanges {
 | 
						|
	name: string;
 | 
						|
	ranges: string[];
 | 
						|
}
 | 
						|
 | 
						|
export type DefinedNamesModel = DefinedNamesRanges[];
 | 
						|
 | 
						|
export interface DefinedNames {
 | 
						|
	getMatrix(name: string): CellMatrix;
 | 
						|
	// add a name to a cell. locStr in the form SheetName!$col$row or SheetName!$c1$r1:$c2:$r2
 | 
						|
	add(locStr: string, name?: string): void;
 | 
						|
	addEx(location: string | Location, name: string): Cell;
 | 
						|
 | 
						|
	remove(locStr: string | Location, name: string): void;
 | 
						|
	removeEx(location: string | Location, name: string): void;
 | 
						|
	removeAllNames(location: string | Location): void;
 | 
						|
 | 
						|
	forEach(callback: (name: string, cell: Cell) => void): void;
 | 
						|
 | 
						|
	// get all the names of a cell
 | 
						|
	getNames(addressStr: string): string[];
 | 
						|
	getNamesEx(address: string): string[];
 | 
						|
 | 
						|
	getRanges(name: string, matrix?: CellMatrix): DefinedNamesRanges;
 | 
						|
 | 
						|
	model: DefinedNamesModel;
 | 
						|
}
 | 
						|
 | 
						|
export interface WorkbookModel {
 | 
						|
	creator: string;
 | 
						|
	lastModifiedBy: string;
 | 
						|
	lastPrinted: Date;
 | 
						|
	created: Date;
 | 
						|
	modified: Date;
 | 
						|
	properties: WorkbookProperties;
 | 
						|
	worksheets: Worksheet[];
 | 
						|
	sheets: WorksheetModel[];
 | 
						|
	definedNames: DefinedNamesModel;
 | 
						|
	views: WorkbookView[];
 | 
						|
	company: string;
 | 
						|
	manager: string;
 | 
						|
	title: string;
 | 
						|
	subject: string;
 | 
						|
	keywords: string;
 | 
						|
	category: string;
 | 
						|
	description: string;
 | 
						|
	language: string;
 | 
						|
	revision: Date;
 | 
						|
	contentStatus: string;
 | 
						|
	themes: string[];
 | 
						|
	media: Media[];
 | 
						|
}
 | 
						|
 | 
						|
export class Workbook {
 | 
						|
    category: string;
 | 
						|
    company: string;
 | 
						|
	creator: string;
 | 
						|
    description: string;
 | 
						|
    keywords: string;
 | 
						|
	lastModifiedBy: string;
 | 
						|
	created: Date;
 | 
						|
    manager: string;
 | 
						|
	modified: Date;
 | 
						|
	lastPrinted: Date;
 | 
						|
	properties: WorkbookProperties;
 | 
						|
	subject: string;
 | 
						|
    title: string;
 | 
						|
 | 
						|
	/**
 | 
						|
	 * Workbook calculation Properties
 | 
						|
	 */
 | 
						|
	calcProperties: CalculationProperties;
 | 
						|
 | 
						|
	/**
 | 
						|
	 * xlsx file format operations
 | 
						|
	 */
 | 
						|
	readonly xlsx: Xlsx;
 | 
						|
 | 
						|
	/**
 | 
						|
	 * csv file format operations
 | 
						|
	 */
 | 
						|
	readonly csv: Csv;
 | 
						|
 | 
						|
	readonly nextId: number;
 | 
						|
 | 
						|
	readonly definedNames: DefinedNames;
 | 
						|
 | 
						|
	model: WorkbookModel;
 | 
						|
 | 
						|
	/**
 | 
						|
	 * The Workbook views controls how many separate windows Excel will open when viewing the workbook.
 | 
						|
	 */
 | 
						|
	views: WorkbookView[];
 | 
						|
 | 
						|
	/**
 | 
						|
	 * return a clone of worksheets in order
 | 
						|
	 */
 | 
						|
	worksheets: Worksheet[];
 | 
						|
 | 
						|
	/**
 | 
						|
	 * Add a new worksheet and return a reference to it
 | 
						|
	 */
 | 
						|
	addWorksheet(name?: string, options?: Partial<AddWorksheetOptions>): Worksheet;
 | 
						|
 | 
						|
	removeWorksheetEx(worksheet: Worksheet): void;
 | 
						|
	removeWorksheet(indexOrName: number | string): void;
 | 
						|
 | 
						|
	/**
 | 
						|
	 * fetch sheet by name or id
 | 
						|
	 */
 | 
						|
	getWorksheet(indexOrName: number | string): Worksheet;
 | 
						|
 | 
						|
	/**
 | 
						|
	 * Iterate over all sheets.
 | 
						|
	 *
 | 
						|
	 * Note: `workbook.worksheets.forEach` will still work but this is better.
 | 
						|
	 */
 | 
						|
	eachSheet(callback: (worksheet: Worksheet, id: number) => void): void;
 | 
						|
 | 
						|
	clearThemes(): void;
 | 
						|
 | 
						|
	/**
 | 
						|
	 * Add Image to Workbook and return the id
 | 
						|
	 */
 | 
						|
	addImage(img: Image): number;
 | 
						|
 | 
						|
	getImage(id: number): Image;
 | 
						|
}
 | 
						|
 | 
						|
export interface TableStyleProperties {
 | 
						|
	/**
 | 
						|
	 * The colour theme of the table
 | 
						|
	 * @default 'TableStyleMedium2'
 | 
						|
	 */
 | 
						|
	theme?: 'TableStyleDark1' | 'TableStyleDark10' | 'TableStyleDark11' | 'TableStyleDark2' | 'TableStyleDark3' | 'TableStyleDark4' | 'TableStyleDark5' | 'TableStyleDark6' | 'TableStyleDark7' | 'TableStyleDark8' | 'TableStyleDark9' | 'TableStyleLight1' | 'TableStyleLight10' | 'TableStyleLight11' | 'TableStyleLight12' | 'TableStyleLight13' | 'TableStyleLight14' | 'TableStyleLight15' | 'TableStyleLight16' | 'TableStyleLight17' | 'TableStyleLight18' | 'TableStyleLight19' | 'TableStyleLight2' | 'TableStyleLight20' | 'TableStyleLight21' | 'TableStyleLight3' | 'TableStyleLight4' | 'TableStyleLight5' | 'TableStyleLight6' | 'TableStyleLight7' | 'TableStyleLight8' | 'TableStyleLight9' | 'TableStyleMedium1' | 'TableStyleMedium10' | 'TableStyleMedium11' | 'TableStyleMedium12' | 'TableStyleMedium13' | 'TableStyleMedium14' | 'TableStyleMedium15' | 'TableStyleMedium16' | 'TableStyleMedium17' | 'TableStyleMedium18' | 'TableStyleMedium19' | 'TableStyleMedium2' | 'TableStyleMedium20' | 'TableStyleMedium21' | 'TableStyleMedium22' | 'TableStyleMedium23' | 'TableStyleMedium24' | 'TableStyleMedium25' | 'TableStyleMedium26' | 'TableStyleMedium27' | 'TableStyleMedium28' | 'TableStyleMedium3' | 'TableStyleMedium4' | 'TableStyleMedium5' | 'TableStyleMedium6' | 'TableStyleMedium7' | 'TableStyleMedium8' | 'TableStyleMedium9';
 | 
						|
	/**
 | 
						|
	  * Highlight the first column (bold)
 | 
						|
	  * @default false
 | 
						|
	  */
 | 
						|
	showFirstColumn?: boolean;
 | 
						|
	/**
 | 
						|
	  * Highlight the last column (bold)
 | 
						|
	  * @default false
 | 
						|
	  */
 | 
						|
	showLastColumn?: boolean;
 | 
						|
	/**
 | 
						|
	  * Alternate rows shown with background colour
 | 
						|
	  * @default false
 | 
						|
	  */
 | 
						|
	showRowStripes?: boolean;
 | 
						|
	/**
 | 
						|
	  * Alternate rows shown with background colour
 | 
						|
	  * @default false
 | 
						|
	  */
 | 
						|
	showColumnStripes?: boolean;
 | 
						|
}
 | 
						|
 | 
						|
export interface TableColumnProperties {
 | 
						|
	/**
 | 
						|
	  * The name of the column, also used in the header
 | 
						|
	  */
 | 
						|
	name: string;
 | 
						|
	/**
 | 
						|
	  * Switches the filter control in the header
 | 
						|
	  * @default false
 | 
						|
	  */
 | 
						|
	filterButton?: boolean;
 | 
						|
	/**
 | 
						|
	  * Label to describe the totals row (first column)
 | 
						|
	  * @default 'Total'
 | 
						|
	  */
 | 
						|
	totalsRowLabel?: string;
 | 
						|
	/**
 | 
						|
	  * Name of the totals function
 | 
						|
	  * @default 'none'
 | 
						|
	  */
 | 
						|
	totalsRowFunction?: 'none' | 'average' | 'countNums' | 'count' | 'max' | 'min' | 'stdDev' | 'var' | 'sum' | 'custom';
 | 
						|
	/**
 | 
						|
	  * Optional formula for custom functions
 | 
						|
	  */
 | 
						|
	totalsRowFormula?: string;
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
export interface TableProperties {
 | 
						|
	/**
 | 
						|
	 * The name of the table
 | 
						|
	 */
 | 
						|
	name: string;
 | 
						|
	/**
 | 
						|
	 * The display name of the table
 | 
						|
	 */
 | 
						|
	displayName?: string;
 | 
						|
	/**
 | 
						|
	 * Top left cell of the table
 | 
						|
	 */
 | 
						|
	ref: string;
 | 
						|
	/**
 | 
						|
	 * Show headers at top of table
 | 
						|
	 * @default true
 | 
						|
	 */
 | 
						|
	headerRow?: boolean;
 | 
						|
	/**
 | 
						|
	 * Show totals at bottom of table
 | 
						|
	 * @default false
 | 
						|
	 */
 | 
						|
	totalsRow?: boolean;
 | 
						|
	/**
 | 
						|
	 * Extra style properties
 | 
						|
	 * @default {}
 | 
						|
	 */
 | 
						|
	style?: TableStyleProperties;
 | 
						|
	/**
 | 
						|
	 * Column definitions
 | 
						|
	 */
 | 
						|
	columns: TableColumnProperties[]
 | 
						|
	/**
 | 
						|
	 * Rows of data
 | 
						|
	 */
 | 
						|
	rows: any[][]
 | 
						|
}
 | 
						|
 | 
						|
export type TableColumn = Required<TableColumnProperties>
 | 
						|
 | 
						|
export interface Table extends Required<TableProperties> {
 | 
						|
	/**
 | 
						|
	 * Commit changes
 | 
						|
	 */
 | 
						|
	commit: () => void
 | 
						|
	/**
 | 
						|
	 * Remove a rows of data
 | 
						|
	 */
 | 
						|
	removeRows: (rowIndex: number, count: number) => void
 | 
						|
	/**
 | 
						|
	 * Add a row of data, either insert at rowNumber or append
 | 
						|
	 */
 | 
						|
	addRow: (values: any[], rowNumber?: number) => void
 | 
						|
	/**
 | 
						|
	 * Get column
 | 
						|
	 */
 | 
						|
	getColumn: (colIndex: number) => TableColumn
 | 
						|
	/**
 | 
						|
	 * Add a new column, including column defn and values
 | 
						|
	 * inserts at colNumber or adds to the right
 | 
						|
	 */
 | 
						|
	addColumn: (column: TableColumnProperties, values: any[], colIndex: number) => void
 | 
						|
	/**
 | 
						|
	 * Remove a column with data
 | 
						|
	 */
 | 
						|
	removeColumns: (colIndex: number, count: number) => void
 | 
						|
}
 | 
						|
 | 
						|
export namespace config {
 | 
						|
	function setValue(key: 'promise', promise: any): void;
 | 
						|
}
 | 
						|
 | 
						|
export namespace stream {
 | 
						|
	namespace xlsx {
 | 
						|
		interface WorkbookWriterOptions {
 | 
						|
			/**
 | 
						|
			 * Specifies a writable stream to write the XLSX workbook to.
 | 
						|
			 */
 | 
						|
			stream: import('stream').Stream;
 | 
						|
 | 
						|
			/**
 | 
						|
			 * 	If stream not specified, this field specifies the path to a file to write the XLSX workbook to.
 | 
						|
			 */
 | 
						|
			filename: string;
 | 
						|
 | 
						|
			/**
 | 
						|
			 * 	Specifies whether to use shared strings in the workbook. Default is false
 | 
						|
			 */
 | 
						|
			useSharedStrings: boolean;
 | 
						|
 | 
						|
			/**
 | 
						|
			 * Specifies whether to add style information to the workbook.
 | 
						|
			 * Styles can add some performance overhead. Default is false
 | 
						|
			 */
 | 
						|
			useStyles: boolean;
 | 
						|
		}
 | 
						|
 | 
						|
		interface ArchiverZipOptions {
 | 
						|
			comment: string;
 | 
						|
			forceLocalTime: boolean;
 | 
						|
			forceZip64: boolean;
 | 
						|
			store: boolean;
 | 
						|
			zlib: Partial<ZlibOptions>;
 | 
						|
		}
 | 
						|
 | 
						|
		interface ZlibOptions {
 | 
						|
			/**
 | 
						|
			 * @default constants.Z_NO_FLUSH
 | 
						|
			 */
 | 
						|
			flush: number;
 | 
						|
			/**
 | 
						|
			 * @default constants.Z_FINISH
 | 
						|
			 */
 | 
						|
			finishFlush: number;
 | 
						|
			/**
 | 
						|
			 * @default 16*1024
 | 
						|
			 */
 | 
						|
			chunkSize: number;
 | 
						|
			windowBits: number;
 | 
						|
			level: number; // compression only
 | 
						|
			memLevel: number; // compression only
 | 
						|
			strategy: number; // compression only
 | 
						|
			dictionary: Buffer | NodeJS.TypedArray | DataView | ArrayBuffer; // deflate/inflate only, empty dictionary by default
 | 
						|
		}
 | 
						|
 | 
						|
		interface WorkbookStreamWriterOptions extends WorkbookWriterOptions {
 | 
						|
 | 
						|
			/**
 | 
						|
			 * Specifies whether to add style information to the workbook.
 | 
						|
			 * Styles can add some performance overhead. Default is false
 | 
						|
			 */
 | 
						|
			zip: Partial<ArchiverZipOptions>;
 | 
						|
		}
 | 
						|
 | 
						|
		class WorkbookWriter extends Workbook {
 | 
						|
			constructor(options: Partial<WorkbookStreamWriterOptions>);
 | 
						|
			// commit all worksheets, then add suplimentary files
 | 
						|
			commit(): Promise<void>;
 | 
						|
			addStyles(): Promise<void>;
 | 
						|
			addThemes(): Promise<void>;
 | 
						|
			addOfficeRels(): Promise<void>;
 | 
						|
			addContentTypes(): Promise<void>;
 | 
						|
			addApp(): Promise<void>;
 | 
						|
			addCore(): Promise<void>;
 | 
						|
			addSharedStrings(): Promise<void>;
 | 
						|
			addWorkbookRels(): Promise<void>;
 | 
						|
			addWorkbook(): Promise<void>;
 | 
						|
		}
 | 
						|
 | 
						|
 | 
						|
		interface WorkbookStreamReaderOptions {
 | 
						|
			/**
 | 
						|
			 * @default 'emit'
 | 
						|
			 */
 | 
						|
			worksheets?: 'emit' | 'ignore';
 | 
						|
			/**
 | 
						|
			 * @default 'cache'
 | 
						|
			 */
 | 
						|
			sharedStrings?: 'cache' | 'emit' | 'ignore';
 | 
						|
			/**
 | 
						|
			 * @default 'ignore'
 | 
						|
			 */
 | 
						|
			hyperlinks?: 'cache' | 'emit' | 'ignore';
 | 
						|
			/**
 | 
						|
			 * @default 'ignore'
 | 
						|
			 */
 | 
						|
			styles?: 'cache' | 'ignore';
 | 
						|
			/**
 | 
						|
			 * @default 'ignore'
 | 
						|
			 */
 | 
						|
			entries?: 'emit' | 'ignore';
 | 
						|
		}
 | 
						|
 | 
						|
		class WorkbookReader extends Workbook {
 | 
						|
			constructor(input: string | import('stream').Stream, options: Partial<WorkbookStreamReaderOptions>);
 | 
						|
			read(): Promise<void>;
 | 
						|
			[Symbol.asyncIterator](): AsyncGenerator<WorksheetReader>;
 | 
						|
			parse(): AsyncIterator<any>;
 | 
						|
		}
 | 
						|
 | 
						|
		interface WorksheetReaderOptions {
 | 
						|
			workbook: Workbook;
 | 
						|
			id: number;
 | 
						|
			entry: import('stream').Stream;
 | 
						|
			options: WorkbookStreamReaderOptions;
 | 
						|
		}
 | 
						|
 | 
						|
		class WorksheetReader {
 | 
						|
			constructor(options: WorksheetReaderOptions);
 | 
						|
			read(): Promise<void>;
 | 
						|
			[Symbol.asyncIterator](): AsyncGenerator<Row>;
 | 
						|
			parse(): AsyncIterator<Array<any>>;
 | 
						|
			dimensions(): number;
 | 
						|
			columns(): number;
 | 
						|
			getColumn(c: number): Column;
 | 
						|
		}
 | 
						|
	}
 | 
						|
}
 |