// Generated by dts-bundle-generator v9.2.4

export interface OptionsRpr {
	/** Bold */
	bold?: boolean;
	/** Color: HEX value */
	color?: string;
	/** Font family */
	font?: string;
	/** Font size: point values */
	fontSize?: number;
	/** Highligh color */
	highlight?: "black" | "blue" | "cyan" | "green" | "magenta" | "red" | "yellow" | "white" | "darkBlue" | "darkCyan" | "darkGreen" | "darkMagenta" | "darkRed" | "darkYellow" | "darkGray" | "lightGray" | "none";
	/** Italic */
	italic?: boolean;
	/** Language */
	lang?: string;
	/** Character style */
	rStyle?: string;
	/** Strikethrough */
	strikethrough?: boolean;
	/** Underline */
	underline?: "single" | "words" | "double" | "thic" | "dotted" | "dottedHeavy" | "dash" | "dashedHeavy" | "dashLong" | "dashLongHeavy" | "dotDash" | "dashDotHeavy" | "dotDotDash" | "dashDotDotHeavy" | "wave" | "wavyHeavy" | "wavyDouble" | "none";
}
export interface OptionsParagraph extends OptionsRpr {
	/** Alignment */
	align?: string;
	/** Background color: HEX value */
	backgroundColor?: string;
	/** Bidi */
	bidi?: boolean;
	/** Contextual spacing. Don't added space between paragraphs of the same style */
	contextualSpacing?: boolean;
	/** Indentations: twips value */
	indentation?: {
		firstLine?: number;
		hanging?: number;
		left?: number;
		right?: number;
	};
	/** Keep lines together */
	keepLines?: boolean;
	/** Keep with next */
	keepNext?: boolean;
	/** Spacing: twips value */
	spacing?: {
		line?: number;
		after?: number;
		before?: number;
	};
	/** Outline level (heading level): 1, 2, 3... */
	outlineLvl?: number;
	/** Paragraph style */
	pStyle?: string;
	/** Parse line breaks. Default as true */
	parseLineBreaks?: boolean;
	/** Parse tabs. Default as true */
	parseTabs?: boolean;
	/** Parse break before */
	pageBreakBefore?: boolean;
	/** RTL */
	rtl?: boolean;
	/** Shading color: HEX value */
	shading?: string;
}
export interface Relationship {
	/** Id */
	id: string;
	/** Target */
	target: string;
	/** Target mode */
	targetMode?: string;
	/** Type */
	type: string;
}
declare abstract class CreateElement {
	/**
	 * External defaults
	 */
	protected externalDefaults: Map<string, string>;
	/**
	 * External relationships
	 */
	protected externalRelationships: Relationship[];
	/**
	 * File contents
	 */
	protected fileContents: Map<string, ArrayBuffer>;
	/**
	 * XML content
	 */
	protected xml: string;
	/**
	 * Constructor
	 */
	constructor();
	/**
	 * Create element content
	 */
	abstract create(): string;
	/**
	 * Getter external defaults
	 *
	 * @returns external relationships
	 */
	getExternalDefaults(): Map<string, string>;
	/**
	 * Getter external relationships
	 *
	 * @returns external relationships
	 */
	getExternalRelationships(): Relationship[];
	/**
	 * Getter file contents
	 *
	 * @returns File contents
	 */
	getFileContents(): Map<string, ArrayBuffer>;
	/**
	 * Getter xml
	 *
	 * @returns XML
	 */
	getXml(): string;
	/**
	 * Merge rPr styles in paragraph options
	 *
	 * @param options - Style options
	 * @param optionsParagraph - Paragraph options
	 * @returns options
	 */
	mergeParagraphRprStyles<T extends OptionsRpr>(options: T, optionsParagraph: OptionsParagraph): T;
	/**
	 * Keeps external dependencies from the WordFragment
	 *
	 * @param element - WordFragment
	 */
	protected mergeExternalDependencies(element: WordFragment): void;
}
export interface OptionsAltchunk {
	/** File content */
	file: ArrayBuffer;
	/** File type */
	type: "docx" | "html" | "mht" | "rtf";
}
export interface OptionsBookmark {
}
export type BreakType = "line" | "page" | "column";
export interface OptionsBreak {
}
export interface OptionsDateTime extends OptionsRpr {
	/** Date and time format. Default as "dd/MM/yyyy H:mm:ss" */
	format?: string;
}
export interface OptionsReference {
	/** Replace existing reference in the section. Default as true */
	replaceOthers?: boolean;
	/** Section to add the content. Default as -1 (last section) */
	section?: number | "all";
	/** Content */
	text: WordFragment;
	/** Type. Default as default */
	type?: "default" | "even" | "first";
}
export type Reference = "footer" | "header";
declare class CreateReference extends CreateElement {
	/**
	 * Element options
	 */
	protected options: OptionsReference;
	/**
	 * Target
	 */
	protected target: "footer" | "header";
	/**
	 * Constructor
	 *
	 * @param options - Options reference
	 * @param target - Reference target
	 */
	constructor(options: OptionsReference, target: Reference);
	/**
	 * Getter options
	 *
	 * @returns Reference options
	 */
	getOptions(): OptionsReference;
	/**
	 * Getter target
	 *
	 * @returns Target
	 */
	getTarget(): Reference;
	/**
	 * Creates content
	 *
	 * @returns Contents
	 */
	create(): string;
}
export interface OptionsFooter extends OptionsReference {
}
export interface OptionsHeader extends OptionsReference {
}
export type MimeImage = "image/gif" | "image/jpg" | "image/png" | "image/webp";
export interface OptionsImage {
	/** Alt text value */
	descr?: string;
	/** Height: EMUs value. Get from image as default */
	height?: number;
	/** Image content: png, jpg/jpeg, gif, webp formats */
	image: ArrayBuffer;
	/** Float image. Only if textWrap is not inline */
	float?: "left" | "center" | "right";
	/** Link: URL */
	link?: string;
	/** Mime type. Auto detect if not set */
	mime?: MimeImage | null;
	/** Spacing: EMUs value. Default as 0 */
	spacing?: {
		top?: number;
		right?: number;
		bottom?: number;
		left?: number;
	};
	/** Text wrapping. Default as inline */
	textWrapping?: "inline" | "square" | "front" | "back" | "topBottom";
	/** Width: EMUs value. Get from image as default */
	width?: number;
}
declare class CreateImage extends CreateElement {
	/**
	 * Id docPr
	 */
	protected idDocPr: number;
	/**
	 * Id
	 */
	protected id: string;
	/**
	 * Id link
	 */
	protected idLink?: string;
	/**
	 * Element options
	 */
	protected options: OptionsImage;
	/**
	 * Constructor
	 *
	 * @param options - Options image
	 * @param id - Id
	 * @param idDocPr - Id docPr
	 * @param idLink - Id link
	 */
	constructor(options: OptionsImage, id: string, idDocPr: number, idLink?: string);
	/**
	 * Creates content
	 *
	 * @returns Contents
	 */
	create(): string;
	/**
	 * Getter mime
	 *
	 * @returns Image options
	 */
	getMime(): MimeImage;
	/**
	 * Getter options
	 *
	 * @returns Image options
	 */
	getOptions(): OptionsImage;
	/**
	 * Gets file extension to be added as relationship
	 *
	 * @returns File extension. Default as png
	 */
	getRelationshipFileExtension(): string;
}
export interface OptionsText extends OptionsRpr {
	/** Text content */
	text: string;
}
export interface OptionsLink extends OptionsText {
	/** Color: HEX value. Default as 0563C1 */
	color?: string;
	/** Link: URL or #bookmark_name */
	link: string;
	/** Character style. Default as Hyperlink */
	rStyle?: string;
	/** Underline. Default as single */
	underline?: "single" | "words" | "double" | "thic" | "dotted" | "dottedHeavy" | "dash" | "dashedHeavy" | "dashLong" | "dashLongHeavy" | "dotDash" | "dashDotHeavy" | "dotDotDash" | "dashDotDotHeavy" | "wave" | "wavyHeavy" | "wavyDouble" | "none";
}
export type ListNested = string | WordFragment | ListNested[];
export interface OptionsList extends OptionsParagraph {
	/** Custom numId */
	numId?: number;
	/** Paragraph style. Default as ListParagraph */
	pStyle?: string;
	/** List type: bullets (default), numbering, clear or custom list style */
	type?: "bullets" | "numbering" | string;
}
export interface OptionsNumPr extends OptionsParagraph {
	/** Format. Default as %1. for the first level, %2. for second level... */
	format?: string;
	/** Indentations: twips value */
	indentation?: {
		/** Default as 360 */
		hanging?: number;
		/** Default as 720 times the list level */
		left?: number;
	};
	/** Justification. Default as left */
	justification?: string;
	/** Paragraph style. Default as ListParagraph */
	pStyle?: string;
	/** Start value. Default as 1 */
	start?: number;
	/** Suffix */
	suff?: "space" | "tab";
	/** Type: decimal, bullet, upperRoman, lowerRoman, upperLetter, lowerLetter, ordinal, cardinalText, ordinalText, none... */
	type: string;
}
export interface OptionsPageNumber extends OptionsRpr {
	/** Default value. Default as 1 for numerical and a for alphabetical */
	defaultValue?: string;
	/** Page of strings */
	stringsPageOf?: {
		page?: string;
		of?: string;
	};
	/** Page number type. Default as numerical */
	type?: "numerical" | "alphabetical" | "page-of";
}
export interface OptionsProperties {
	/** Category */
	category?: string;
	/** Company */
	company?: string;
	/** Created date. W3CDTF without time zone */
	created?: string;
	/** Creator */
	creator?: string;
	/** Description */
	description?: string;
	/** Keywords */
	keywords?: string;
	/** Last modified by */
	lastModifiedBy?: string;
	/** Manager */
	manager?: string;
	/** Modified date. W3CDTF without time zone */
	modified?: string;
	/** Revision */
	revision?: string;
	/** Subject */
	subject?: string;
	/** Title */
	title?: string;
}
export type LayoutPreset = "A4" | "A3" | "letter" | "legal" | "A4-landscape" | "A3-landscape" | "letter-landscape" | "legal-landscape" | "custom";
export interface OptionsSection {
	/** Bidi */
	bidi?: boolean;
	/** Internal code number */
	code?: number;
	/** Exclude headers and footers reference tags. Default as false */
	excludeHeadersFooters?: boolean;
	/** Height: twips value */
	height?: number;
	/** Margins: twips value */
	margin?: {
		top?: number;
		right?: number;
		bottom?: number;
		left?: number;
		header?: number;
		footer?: number;
	};
	/** Number of columns */
	numberColumns?: number;
	/** Orientation */
	orient?: "portrait" | "landscape";
	/** RTL gutter */
	rtlGutter?: boolean;
	/** Sizes. If undefined use the previous section from the document */
	size?: LayoutPreset;
	/** Type. Default as nextPage */
	type?: "nextPage" | "nextColumn" | "continuous" | "evenPage" | "oddPage";
	/** Width: twips value */
	width?: number;
}
export interface OptionsSectionLayout extends OptionsSection {
	/** If true only modifies the last section. Default as false */
	onlyLastSection?: boolean;
}
export interface OptionsSettings {
	/** Do not show visual indicator for form fields */
	doNotShadeFormData?: boolean;
	/** Different even/odd page headers and footers */
	evenAndOddHeaders?: boolean;
	/** Do not display visual indication of grammatical errors */
	hideGrammaticalErrors?: boolean;
	/** Do not display visual indication of spelling errors */
	hideSpellingErrors?: boolean;
	/** Automatically recalculate fields on open */
	updateFields?: boolean;
	/** Document view setting */
	view?: "none" | "print" | "outline" | "masterPages" | "normal" | "web";
	/** Magnification setting */
	zoom?: number | ("none" | "fullPage" | "bestFit" | "textFit");
}
export interface BorderCell {
	/** Color: HEX value. Default as auto */
	color?: string;
	/** Space: pt value. Default as 0 */
	space?: number;
	/** Border style: single, dotDash, none, thick... Default as single */
	style?: string;
	/** Width: eights of a point value. Default as 4. Minimum 2 and maximum 96 */
	width?: number;
}
export interface OptionsCellTable {
	/** Background color: HEX value */
	backgroundColor?: string;
	/** Border */
	border?: {
		bottom?: BorderCell;
		left?: BorderCell;
		right?: BorderCell;
		top?: BorderCell;
	};
	/** Grid span */
	gridSpan?: number;
	/** Fit text */
	fitText?: boolean;
	/** Margin: twips value */
	margin?: {
		top?: number;
		right?: number;
		bottom?: number;
		left?: number;
	};
	/** Content */
	text: string | WordFragment;
	/** Text direction */
	textDirection?: "btLr" | "tbLrV" | "tbRl" | "tbRlV" | "lrTb" | "lrTbV";
	/** Vertical alignment */
	verticalAlign?: "both" | "bottom" | "center" | "top";
	/** Width: twips value */
	width?: number;
	/** Vertical merge */
	vMerge?: "restart" | "continue";
	/** Wrap text */
	wrapText?: boolean;
}
export interface OptionsRowTable {
	/** Allow row to break accross pages */
	cantSplit?: boolean;
	/** Repeat as header row at the top of each page */
	header?: boolean;
	/** Height */
	height?: {
		/** Height size rule */
		rule?: "auto" | "atLeast" | "exact";
		/** Value: twips value */
		value?: number;
	};
}
export interface OptionsTable {
	/** Alignment */
	align?: string;
	/** Border */
	border?: {
		bottom?: BorderCell;
		insideH?: BorderCell;
		insideV?: BorderCell;
		left?: BorderCell;
		right?: BorderCell;
		top?: BorderCell;
	};
	/** Cell margins: twips value */
	cellMargin?: {
		top?: number;
		right?: number;
		bottom?: number;
		left?: number;
	};
	/** Cell spacing: twips value */
	cellSpacing?: number;
	/** Column widths */
	columnWidths?: number | number[];
	/** Contional formatting  */
	conditionalFormatting?: {
		/** First column. Default as true */
		firstColumn?: boolean;
		/** First row.  Default as true */
		firstRow?: boolean;
		/** Last column.  Default as false */
		lastColumn?: boolean;
		/** Last row.  Default as false */
		lastRow?: boolean;
		/** Horizontal banding. Default as false */
		noHBand?: boolean;
		/** Vertical banding.  Default as true */
		noVBand?: boolean;
	};
	/** Indentation: twips value */
	indentation?: number;
	/** Layout */
	layout?: "autofit" | "fixed";
	/** Paragraph options added after the table */
	paragraphAfterOptions?: OptionsParagraph;
	/** Table style. Default as TableGrid */
	tblStyle?: string;
	/** Text wrapping */
	textWrapping?: "around" | "none";
	/** Table width */
	width?: {
		/** Type: auto, dxa (twips value), pct (percent). Default as pct */
		type?: "auto" | "dxa" | "pct";
		/** Value: dxa (twips value), pct (percent value). Default as 100 if type is pct  */
		value?: number;
	};
}
export interface OptionsTableOfContents {
	/** Try to update the TOC when first opened */
	autoUpdate?: boolean;
	/** Outline levels to be displayed. Default as "1-4" */
	showLevels?: string;
	/** Legend. Default as "Click here to update the Table of Contents" */
	legend?: OptionsText;
}
export type Target = "document" | "header" | "footer" | "comment" | "endnote" | "footnote";
export interface OptionsFirstMatch {
	/** Replace only the first match. Default as false */
	firstMatch?: boolean;
}
export interface OptionsParseLineBreaks {
	/** Parse line breaks. Default as true */
	parseLineBreaks?: boolean;
}
export interface OptionsReplacementType {
	/** Remove type: inline, block  */
	type?: "inline" | "block";
}
export interface OptionsRemoveVariableImage extends OptionsFirstMatch, OptionsReplacementType {
}
export interface OptionsRemoveVariableText extends OptionsFirstMatch, OptionsReplacementType {
}
export interface OptionsReplaceVariableExternalFile extends OptionsFirstMatch {
}
export interface OptionsReplaceVariableImage extends OptionsFirstMatch {
	/** Height: EMUs value. If -1 do not change the placeholder image height. If not set, use new image height */
	height?: number;
	/** Mime type */
	mime?: MimeImage;
	/** Width: EMUs value. If -1 do not change the placeholder image width. If not set, use new image width */
	width?: number;
}
export interface OptionsReplaceVariableList extends OptionsFirstMatch, OptionsParseLineBreaks {
}
export interface OptionsReplaceVariableTable extends OptionsFirstMatch, OptionsParseLineBreaks {
}
export interface OptionsReplaceVariableText extends OptionsFirstMatch, OptionsParseLineBreaks {
}
export interface OptionsReplaceVariableWordFragment extends OptionsFirstMatch, OptionsReplacementType {
}
export interface OptionsReplaceVariableWordMl extends OptionsFirstMatch {
}
export interface OptionsTemplate {
	/** Import default MS Word styles. Default as true */
	importMSWordDefaultStyles?: boolean;
}
export type ContentType = Target | "app" | "core" | "numbering" | "settings" | "styles";
declare class Docx {
	/**
	 * Conformance
	 */
	protected conformance: "transitional" | "strict";
	/**
	 * File contents
	 */
	protected fileContents: Map<string, ArrayBuffer>;
	/**
	 * DOCX namespaces
	 */
	protected namespaces: Map<string, string>;
	/**
	 * Text contents
	 */
	protected textContents: Map<string, string>;
	/**
	 * Constructor
	 */
	constructor();
	/**
	 * Getter file contents
	 *
	 * @returns File contents
	 */
	getFileContents(): Map<string, ArrayBuffer>;
	/**
	 * Getter namespaces
	 *
	 * @returns Namespaces
	 */
	getNamespaces(): Map<string, string>;
	/**
	 * Getter text contents
	 *
	 * @returns Text contents
	 */
	getTextContents(): Map<string, string>;
	/**
	 * Adds a file content
	 *
	 * @param path - File path
	 * @param content - File content
	 */
	addFileContent(path: string, content: ArrayBuffer): void;
	/**
	 * Adds a text content
	 *
	 * @param path - File path
	 * @param content - File content
	 */
	addTextContent(path: string, content: string): void;
	/**
	 * Adds XML content in document
	 *
	 * @param xml - XML content
	 */
	addXmlContent(xml: string): void;
	/**
	 * Adds XML reference (header, footer)
	 *
	 * @param reference - Reference element
	 */
	addXmlContentReference(reference: CreateReference): void;
	/**
	 * Adds DOCX default
	 *
	 * @param extension - File extension
	 * @param contentType - Content type
	 */
	addXmlDefault(extension: string, contentType: string): void;
	/**
	 * Adds XML numbering
	 *
	 * @param abstractNum - Abstract num
	 * @param num - Num content
	 */
	addXmlNumbering(abstractNum: string, num: string): void;
	/**
	 * Adds DOCX override
	 *
	 * @param partName - Part name
	 * @param contentType - Content type
	 */
	addXmlOverride(partName: string, contentType: string): void;
	/**
	 * Adds DOCX properties
	 *
	 * @param settings - Properties options
	 */
	addXmlProperties(options: OptionsProperties): void;
	/**
	 * Adds XML relationship
	 *
	 * @param xml - XML content
	 * @param target - Target file
	 */
	addXmlRelationship(relationship: Relationship, target?: Target): void;
	/**
	 * Adds DOCX settings
	 *
	 * @param settings - Settings options
	 */
	addXmlSettings(settings: Map<string, string>): void;
	/**
	 * Add XML skeleton
	 *
	 * @param contentType - Content type
	 */
	addXmlSkeletonFile(contentType: ContentType): void;
	/**
	 * Adds DOCX custom style
	 *
	 * @param style - Custom style contents
	 * @param type - Style type
	 * @param name - Style name
	 */
	addXmlStyleCustom(style: string, type: "character" | "paragraph", name: string): void;
	/**
	 * Adds XML style
	 *
	 * @param xml - Styles
	 */
	addXmlStyle(xml: string): void;
	/**
	 * Extracts XML variables
	 *
	 * @param content - XML content
	 * @param templateSymbolStart - Template symbol start
	 * @param templateSymbolEnd - Template symbol end
	 * @param regExprVariableSymbols - Regular expression variable symbols
	 * @returns Variables
	 */
	extractXmlVariables(content: string, templateSymbolStart: string, templateSymbolEnd: string, regExprVariableSymbols: string): string[];
	/**
	 *  Generates inline contents
	 *
	 * @param xml - XML content
	 * @returns Inline XML contents
	 */
	getInlineXmlContents(xml: string): string;
	/**
	 * Gets XML contents
	 *
	 * @param xml - XML content
	 * @param xpathQuery - XPath query
	 * @returns XML contents
	 */
	getXmlContents(xml: string, xpathQuery: string): string;
	/**
	 * Gets text content by type
	 *
	 * @param contentType - Content type
	 * @param rels - Get rels file
	 * @returns Contents
	 */
	getContentPathsByType(contentType: ContentType, rels?: boolean): string[] | null;
	/**
	 * Gets a file content
	 *
	 * @param path - File path
	 * @returns File contents
	 */
	getFileContent(path: string): ArrayBuffer | null;
	/**
	 * Gets a text content
	 *
	 * @param path - File path
	 * @returns File contents
	 */
	getTextContent(path: string): string | null;
	/**
	 * Imports MS Word default styles
	 *
	 * @param docxDefaultStructure - DOCX structure with the styles to be imported
	 */
	importMSWordDefaultStyles(docxDefaultStructure: Docx): void;
	/**
	 * Inits DOCX structure to adjust contents if needed and extra settings
	 *
	 * @throws Error reading DOCX file
	 */
	initDocxStructure(): void;
	/**
	 * Modifies sections
	 *
	 * @param options - Options section layout
	 * @returns XML
	 */
	modifySections(options: OptionsSectionLayout): void;
	/**
	 * Removes an XML element using an XPath query
	 *
	 * @param xml - XML content
	 * @param query - XPath query
	 * @returns XML
	 */
	removeXmlElement(xml: string, query: string): string;
	/**
	 * Repairs XML contents wrapped by template symbols removing extra tags
	 *
	 * @param content - XML content
	 * @param templateSymbolStart - Template symbol start
	 * @param templateSymbolEnd - Template symbol end
	 * @returns XML repaired
	 */
	repairXmlVariables(content: string, templateSymbolStart: string, templateSymbolEnd: string): string;
	/**
	 * Replaces XML image
	 *
	 * @param xml - XML content
	 * @param query - XPath query
	 * @param image - Image
	 * @param imageId - Image Id
	 * @param options - Replace variable image options
	 * @returns XML
	 */
	replaceXmlImage(xml: string, query: string, elementImage: CreateImage, imageId: string, options: OptionsReplaceVariableImage): [
		string,
		number
	];
	/**
	 * Replaces XML list
	 *
	 * @param xml - XML content
	 * @param variable - Variable name
	 * @param query - XPath query
	 * @param items - List items
	 * @param options - Options replace list
	 * @param templateSymbolStart - Template symbol start
	 * @param templateSymbolEnd - Template symbol end
	 * @returns XML and WordFragments
	 */
	replaceXmlList(xml: string, variable: string, query: string, items: ListNested[], options: OptionsReplaceVariableList, templateSymbolStart: string, templateSymbolEnd: string): [
		string,
		Map<string, WordFragment>
	];
	/**
	 * Replaces XML table
	 *
	 * @param xml - XML content
	 * @param variables - Variables
	 * @param query - XPath query
	 * @param options - Options replace table
	 * @param templateSymbolStart - Template symbol start
	 * @param templateSymbolEnd - Template symbol end
	 * @returns XML and WordFragments
	 */
	replaceXmlTable(xml: string, variables: Map<string, string | WordFragment>[], query: string, options: OptionsReplaceVariableTable, templateSymbolStart: string, templateSymbolEnd: string): [
		string,
		Map<string, WordFragment>
	];
	/**
	 * Replaces an XML element with WordFragment using an XPath query
	 *
	 * @param xml - XML content
	 * @param query - XPath query
	 * @param variable - Variable name
	 * @param variableValue - Variable value
	 * @param options - Options replace text with WordFragment
	 * @returns XML
	 */
	replaceXmlWordFragment(xml: string, query: string, variable: string, variableValue: WordFragment, options: OptionsReplaceVariableWordFragment): string;
	/**
	 * Replaces list node by a new list
	 *
	 * @param variable - Variable name
	 * @param items - List items
	 * @param domNode - Node that contains the list
	 * @param options - Options replace list
	 * @param level - Depth level
	 * @param templateSymbolStart - Template symbol start
	 * @param templateSymbolEnd - Template symbol end
	 * @returns WordFragments
	 */
	protected replaceListValues(variable: string, items: ListNested[], domNode: Element, options: OptionsReplaceVariableList, level: number, templateSymbolStart: string, templateSymbolEnd: string): Map<string, WordFragment>;
}
/**
 * WordFragment
 */
export declare class WordFragment extends CreateDocx {
	/**
	 * Constructor
	 */
	constructor();
	/**
	 * To string implementation
	 *
	 * @returns XML
	 */
	toString(): string;
}
/**
 * Create DOCX
 */
export declare class CreateDocx {
	/**
	 * phpdocx version
	 */
	static readonly PHPDOCX_VERSION = "15.0";
	/**
	 * Bidi
	 */
	protected bidi: boolean;
	/**
	 * Custom list styles. Keep relationship between list style names and internal number ids
	 */
	protected customListStyles: Map<string, number>;
	/**
	 * DOCX contents
	 */
	protected docxContent: Docx;
	/**
	 * External defaults
	 */
	protected externalDefaults: Map<string, string>;
	/**
	 * External relationships
	 */
	protected externalRelationships: Relationship[];
	/**
	 * Bookmark Ids
	 */
	protected idsBookmarks: number[];
	/**
	 * DocPr Ids
	 */
	protected idsDocPr: number[];
	/**
	 * Numbering Ids
	 */
	protected idsNumbering: number[];
	/**
	 * Is WordFragment
	 */
	protected isWordFragment: boolean;
	/**
	 * Preprocessed template
	 */
	protected preprocessed: boolean;
	/**
	 * Regular expression to get variables
	 */
	protected regExprVariableSymbols: string;
	/**
	 * RTL
	 */
	protected rtl: boolean;
	/**
	 * Template symbol start
	 */
	protected templateSymbolStart: string;
	/**
	 * Template symbol end
	 */
	protected templateSymbolEnd: string;
	/**
	 * XML content
	 */
	protected xml: string;
	/**
	 * Constructor
	 *
	 * @param docxStructure - Default DOCX structure
	 */
	constructor(docxStructure?: Docx);
	/**
	 * Getter docx structure
	 *
	 * @returns DOCX structure
	 */
	getDocxContent(): Docx;
	/**
	 * Getter regExprVariableSymbols
	 *
	 * @returns Regular expression variable symbols
	 */
	getRegExprVariableSymbols(): string;
	/**
	 * Getter external defaults
	 *
	 * @returns external relationships
	 */
	getExternalDefaults(): Map<string, string>;
	/**
	 * Getter external relationships
	 *
	 * @returns external relationships
	 */
	getExternalRelationships(): Relationship[];
	/**
	 * Getter preprocessed
	 *
	 * @returns Preprocessed
	 */
	getPreprocessed(): boolean;
	/**
	 * Setter preprocessed
	 *
	 * @param preprocessed - Preprocessed
	 * @returns this
	 */
	setPreprocessed(preprocessed: boolean): this;
	/**
	 * Setter regExprVariableSymbols
	 *
	 * @param regExprVariableSymbols - Regular expression variable symbols
	 * @returns this
	 */
	setRegExprVariableSymbols(regExprVariableSymbols: string): this;
	/**
	 * Adds bookmark
	 *
	 * @param name - Bookmark name
	 * @param options - Bookmark options
	 * @returns this
	 */
	addBookmark(name: string, options?: OptionsBookmark): this;
	/**
	 * Adds break
	 *
	 * @param type - Break type
	 * @param options - Break options
	 * @returns this
	 */
	addBreak(type?: BreakType, options?: OptionsBreak): this;
	/**
	 * Adds date and time
	 *
	 * @param options - Date and time options
	 * @param optionsParagraph - Paragraph options
	 * @returns this
	 */
	addDateTime(options?: OptionsDateTime, optionsParagraph?: OptionsParagraph): this;
	/**
	 * Adds external file
	 *
	 * @param options - Altchunk options
	 * @returns this
	 */
	addExternalFile(options: OptionsAltchunk): this;
	/**
	 * Adds footer
	 *
	 * @param footers - Footers
	 * @returns this
	 */
	addFooter(footers: OptionsFooter[]): this;
	/**
	 * Adds header
	 *
	 * @param headers - Headers
	 * @returns this
	 */
	addHeader(headers: OptionsHeader[]): this;
	/**
	 * Adds image
	 *
	 * @param options - Image options
	 * @param optionsParagraph - Paragraph options
	 * @returns this
	 */
	addImage(options: OptionsImage, optionsParagraph?: OptionsParagraph): this;
	/**
	 * Adds link
	 *
	 * @param options - Link options
	 * @param optionsParagraph - Paragraph options
	 * @returns this
	 */
	addLink(options: OptionsLink, optionsParagraph?: OptionsParagraph): this;
	/**
	 * Adds list
	 *
	 * @param items - List items
	 * @param options - List options
	 * @returns this
	 */
	addList(items: ListNested[], options?: OptionsList): this;
	/**
	 * Adds page number
	 *
	 * @param options - Page number options
	 * @param optionsParagraph - Paragraph options
	 * @returns this
	 */
	addPageNumber(options?: OptionsPageNumber, optionsParagraph?: OptionsParagraph): this;
	/**
	 * Adds properties
	 *
	 * @param options - Property options
	 * @returns this
	 */
	addProperties(options: OptionsProperties): this;
	/**
	 * Adds section
	 *
	 * @param options - Section options
	 * @returns this
	 */
	addSection(options?: OptionsSection): this;
	/**
	 * Adds table
	 *
	 * @param items - Table items
	 * @param optionsRow - Table row options
	 * @param optionsTable - Table options
	 * @returns this
	 */
	addTable(items: (string | WordFragment | OptionsCellTable)[][], optionsRow?: OptionsRowTable[], optionsTable?: OptionsTable): this;
	/**
	 * Adds table of contents
	 *
	 * @param options - Table of contents options
	 * @returns this
	 */
	addTableOfContents(options?: OptionsTableOfContents): this;
	/**
	 * Adds text
	 *
	 * @param options - Text contents and options
	 * @param optionsParagraph - Paragraph options
	 * @returns this
	 */
	addText(options: string | (OptionsText | WordFragment)[], optionsParagraph?: OptionsParagraph): this;
	/**
	 * Adds WordFragment
	 *
	 * @param wordFragment - WordFragment
	 * @returns this
	 */
	addWordFragment(wordFragment: WordFragment): this;
	/**
	 * Adds raw WordML contents
	 *
	 * @param wordMl - WordML
	 * @returns this
	 */
	addWordMl(wordMl: string): this;
	/**
	 * Creates a character style
	 *
	 * @param name - Style name
	 * @param styles - Character styles
	 * @returns
	 */
	createCharacterStyle(name: string, styles: OptionsRpr): this;
	/**
	 * Creates a list style
	 *
	 * @param name - Style name
	 * @param styles - Character styles
	 * @returns
	 */
	createListStyle(name: string, styles: OptionsNumPr[]): this;
	/**
	 * Creates a paragraph style
	 *
	 * @param name - Style name
	 * @param styles - Paragarph styles
	 * @returns
	 */
	createParagraphStyle(name: string, styles: OptionsParagraph): this;
	/**
	 * Sets DOCX settings
	 *
	 * @param settings - DOCX settings
	 * @returns this
	 */
	docxSettings(settings: OptionsSettings): this;
	/**
	 * Gets template symbols
	 *
	 * @returns Template symbols
	 */
	getTemplateSymbols(): [
		string,
		string
	];
	/**
	 * Gets template variables
	 *
	 * @returns Variables
	 */
	getTemplateVariables(): Map<string, string[]>;
	/**
	 * Modifies section layout
	 *
	 * @param options - Section options
	 * @returns this
	 */
	modifySectionLayout(options: OptionsSectionLayout): this;
	/**
	 * Opens a DOCX template
	 *
	 * @param template - DOCX template
	 * @param options - Template options
	 * @returns Promise CreateDocx
	 * @throws Error reading DOCX contents
	 */
	openTemplate(template: ArrayBuffer, options?: OptionsTemplate): Promise<this>;
	/**
	 * Processes the template to repair all variables
	 *
	 * @returns this
	 */
	processTemplate(): this;
	/**
	 * Removes image variables
	 *
	 * @param variables - Variables
	 * @param target - Target: document (default), header, footer, footnote, endnote, comment
	 * @param options - Remove variable image options
	 * @returns this
	 */
	removeVariableImage(variables: string[], target?: Target, options?: OptionsRemoveVariableImage): this;
	/**
	 * Removes text variables
	 *
	 * @param variables - Variables
	 * @param target - Target: document (default), header, footer, footnote, endnote, comment
	 * @param options - Remove variable text options
	 * @returns this
	 */
	removeVariableText(variables: string[], target?: Target, options?: OptionsRemoveVariableText): this;
	/**
	 * Replaces text variables with external files
	 *
	 * @param variables - Variables
	 * @param options - Replace variable external file options
	 * @returns this
	 */
	replaceVariableExternalFile(variables: Map<string, WordFragment>, options?: OptionsReplaceVariableExternalFile): this;
	/**
	 * Replaces image variables
	 *
	 * @param variables - Variables
	 * @param target - Target: document (default), header, footer, footnote, endnote, comment
	 * @param options - Replace variable image options
	 * @returns this
	 */
	replaceVariableImage(variables: Map<string, ArrayBuffer>, target?: Target, options?: OptionsReplaceVariableImage): this;
	/**
	 * Replaces list variables
	 *
	 * @param variables - Variables and values
	 * @param target - Target: document (default), header, footer, footnote, endnote, comment
	 * @param options - Replace variable list options
	 * @returns this
	 */
	replaceVariableList(variables: Map<string, ListNested[]>, target?: Target, options?: OptionsReplaceVariableList): this;
	/**
	 * Replaces table variables
	 *
	 * @param variables - Variables and values
	 * @param target - Target: document (default), header, footer, footnote, endnote, comment
	 * @param options - Replace variable table options
	 * @returns this
	 */
	replaceVariableTable(variables: Map<string, string | WordFragment>[][], target?: Target, options?: OptionsReplaceVariableTable): this;
	/**
	 * Replaces text variables with text contents
	 *
	 * @param variables - Variables and values
	 * @param target - Target: document (default), header, footer, footnote, endnote, comment
	 * @param options - Replace variable text options
	 * @returns this
	 */
	replaceVariableText(variables: Map<string, string>, target?: Target, options?: OptionsReplaceVariableText): this;
	/**
	 * Replaces text variables with WordFragments
	 *
	 * @param variables - Variables and values
	 * @param target - Target: document (default), header, footer, footnote, endnote, comment
	 * @param options - Replace variable WordFragment options
	 * @returns this
	 */
	replaceVariableWordFragment(variables: Map<string, WordFragment>, target?: Target, options?: OptionsReplaceVariableWordFragment): this;
	/**
	 * Replaces text variables with WordML
	 *
	 * @param variables - Variables
	 * @param target - Target: document (default), header, footer, footnote, endnote, comment
	 * @param options - Replace variable WordMl
	 * @returns this
	 */
	replaceVariableWordMl(variables: Map<string, WordFragment>, target?: Target, options?: OptionsReplaceVariableWordMl): this;
	/**
	 * Saves the DOCX
	 *
	 * @returns Promise ArrayBuffer
	 */
	save(): Promise<ArrayBuffer>;
	/**
	 * Sets RTL and bidi
	 *
	 * @param rtl - RTL
	 * @param bidi - Bidi
	 * @returns this
	 */
	setRtl(rtl?: boolean, bidi?: boolean): this;
	/**
	 * Sets template symbols
	 *
	 * @param templateSymbolStart - Template symbol start
	 * @param templateSymbolEnd - Template symbol end
	 * @returns this
	 */
	setTemplateSymbols(templateSymbolStart: string, templateSymbolEnd?: string): this;
	/**
	 * Generates a paragraph
	 *
	 * @param content - Paragraph contents
	 * @param options - Paragraph options
	 * @returns Paragraph contents
	 */
	protected generateParagraph(content: string, options?: OptionsParagraph): string;
	/**
	 * Inserts default
	 *
	 * @param extension - File extension
	 * @param contentType - Content type
	 */
	protected insertDefault(extension: string, contentType: string): void;
	/**
	 * Inserts external dependencies
	 *
	 * @param element - Element content
	 * @param target - Target: document (default), header, footer, footnote, endnote, comment
	 */
	protected insertExternalDependencies(element: CreateElement | WordFragment, target?: Target): void;
	/**
	 * Inserts external relationships
	 *
	 * @param externalRelationships - External relationships
	 * @param target - Target: document (default), header, footer, footnote, endnote, comment
	 */
	protected insertExternalRelationships(externalRelationships: Relationship[], target?: Target): void;
	/**
	 * Repairs variables in the template
	 */
	protected repairVariables(): void;
	/**
	 * Sets RTL values
	 *
	 * @param options - Paragraph options
	 * @returns Paragraph options
	 */
	protected setRtlValues(options: OptionsParagraph): OptionsParagraph;
}
/** Measuring units */
export type MeasuringUnit = "eighth-point" | "emu" | "half-point" | "pt" | "px" | "twip";
/**
 * Converts measuring units
 *
 * @param value - Value to be converted
 * @param from - Unit from
 * @param to - Unit to
 * @param round - Round conversion. Default as true
 * @returns Transformed value
 */
export declare const convertMeasuringUnit: (value: number, from: MeasuringUnit, to: MeasuringUnit, round?: boolean) => number | null;

export {};
