/* tslint:disable */
/* eslint-disable */
export function createTemplate(info: ExcelInfo): Uint8Array;
export function importData(info: ExcelInfo, excel_bytes: Uint8Array): ExcelData;
export function exportData(info: ExcelInfo, data: ExcelData): Promise<any>;
export class ExcelCellFormat {
  free(): void;
  constructor();
  withRule(rule: string): ExcelCellFormat;
  withValue(value: string): ExcelCellFormat;
  withColor(color: string): ExcelCellFormat;
  withBold(bold: boolean): ExcelCellFormat;
  withItalic(italic: boolean): ExcelCellFormat;
  withUnderline(underline: boolean): ExcelCellFormat;
  withStrikethrough(strikethrough: boolean): ExcelCellFormat;
  withFontSize(font_size: number): ExcelCellFormat;
  withBackgroundColor(background_color: string): ExcelCellFormat;
  withAlign(align: string): ExcelCellFormat;
  withAlignVertical(align_vertical: string): ExcelCellFormat;
  withDateFormat(date_format: string): ExcelCellFormat;
  withBorderColor(border_color: string): ExcelCellFormat;
  rule: string;
  value: string;
  color: string;
  bold: boolean;
  italic: boolean;
  underline: boolean;
  strikethrough: boolean;
  font_size: number;
  background_color: string;
  align: string;
  align_vertical: string;
  get date_format(): string | undefined;
  set date_format(value: string | null | undefined);
  get border_color(): string | undefined;
  set border_color(value: string | null | undefined);
}
export class ExcelColumnData {
  free(): void;
  constructor(key: string, value: string);
  static newGroup(group_name: string, value: string, children: ExcelRowData[]): ExcelColumnData;
  static newRootGroup(group_name: string, children: ExcelRowData[]): ExcelColumnData;
  withChildren(children: ExcelRowData[]): ExcelColumnData;
  key: string;
  value: string;
  children: ExcelRowData[];
}
export class ExcelColumnInfo {
  free(): void;
  constructor(key: string, name: string);
  withNote(note: string): ExcelColumnInfo;
  withDataType(data_type: string): ExcelColumnInfo;
  withAllowedValues(allowed_values: string[]): ExcelColumnInfo;
  withWidth(width: number): ExcelColumnInfo;
  withFormat(format: ExcelCellFormat): ExcelColumnInfo;
  withParent(parent: string): ExcelColumnInfo;
  withValueFormat(value_format: ExcelCellFormat[]): ExcelColumnInfo;
  withDataGroup(group: string): ExcelColumnInfo;
  withDataGroupParent(group_parent: string): ExcelColumnInfo;
  key: string;
  name: string;
  width: number;
  get note(): string | undefined;
  set note(value: string | null | undefined);
  data_type: string;
  allowed_values: string[];
  parent: string;
  get format(): ExcelCellFormat | undefined;
  set format(value: ExcelCellFormat | null | undefined);
  value_format: ExcelCellFormat[];
  data_group: string;
  data_group_parent: string;
}
export class ExcelData {
  free(): void;
  constructor(rows: ExcelRowData[]);
  rows: ExcelRowData[];
}
export class ExcelInfo {
  free(): void;
  constructor(name: string, sheet_name: string, columns: ExcelColumnInfo[], author: string, create_time: string);
  withTitle(title: string): ExcelInfo;
  withDefaultRowHeight(row_height: number): ExcelInfo;
  withTitleHeight(title_height: number): ExcelInfo;
  withTitleFormat(title_format: ExcelCellFormat): ExcelInfo;
  withOffset(dx: number, dy: number): ExcelInfo;
  withIsHeaderFreeze(is_header_freeze: boolean): ExcelInfo;
  withProgressCallback(callback: Function): ExcelInfo;
  withImageFetcher(fetcher: Function): ExcelInfo;
  name: string;
  sheet_name: string;
  columns: ExcelColumnInfo[];
  author: string;
  create_time: string;
  get title(): string | undefined;
  set title(value: string | null | undefined);
  get title_format(): ExcelCellFormat | undefined;
  set title_format(value: ExcelCellFormat | null | undefined);
  get title_height(): number | undefined;
  set title_height(value: number | null | undefined);
  get default_row_height(): number | undefined;
  set default_row_height(value: number | null | undefined);
  dx: number;
  dy: number;
  is_header_freeze: boolean;
}
export class ExcelRowData {
  free(): void;
  constructor(columns: ExcelColumnData[]);
  columns: ExcelColumnData[];
}

export type InitInput = RequestInfo | URL | Response | BufferSource | WebAssembly.Module;

export interface InitOutput {
  readonly memory: WebAssembly.Memory;
  readonly createTemplate: (a: number, b: number) => void;
  readonly importData: (a: number, b: number, c: number, d: number) => void;
  readonly exportData: (a: number, b: number) => number;
  readonly __wbg_excelrowdata_free: (a: number, b: number) => void;
  readonly __wbg_get_excelrowdata_columns: (a: number, b: number) => void;
  readonly __wbg_set_excelrowdata_columns: (a: number, b: number, c: number) => void;
  readonly excelrowdata_new: (a: number, b: number) => number;
  readonly __wbg_exceldata_free: (a: number, b: number) => void;
  readonly __wbg_get_exceldata_rows: (a: number, b: number) => void;
  readonly __wbg_set_exceldata_rows: (a: number, b: number, c: number) => void;
  readonly exceldata_new: (a: number, b: number) => number;
  readonly __wbg_excelinfo_free: (a: number, b: number) => void;
  readonly __wbg_get_excelinfo_name: (a: number, b: number) => void;
  readonly __wbg_set_excelinfo_name: (a: number, b: number, c: number) => void;
  readonly __wbg_get_excelinfo_sheet_name: (a: number, b: number) => void;
  readonly __wbg_set_excelinfo_sheet_name: (a: number, b: number, c: number) => void;
  readonly __wbg_get_excelinfo_columns: (a: number, b: number) => void;
  readonly __wbg_set_excelinfo_columns: (a: number, b: number, c: number) => void;
  readonly __wbg_get_excelinfo_author: (a: number, b: number) => void;
  readonly __wbg_set_excelinfo_author: (a: number, b: number, c: number) => void;
  readonly __wbg_get_excelinfo_create_time: (a: number, b: number) => void;
  readonly __wbg_set_excelinfo_create_time: (a: number, b: number, c: number) => void;
  readonly __wbg_get_excelinfo_title: (a: number, b: number) => void;
  readonly __wbg_set_excelinfo_title: (a: number, b: number, c: number) => void;
  readonly __wbg_get_excelinfo_title_format: (a: number) => number;
  readonly __wbg_set_excelinfo_title_format: (a: number, b: number) => void;
  readonly __wbg_get_excelinfo_title_height: (a: number, b: number) => void;
  readonly __wbg_set_excelinfo_title_height: (a: number, b: number, c: number) => void;
  readonly __wbg_get_excelinfo_default_row_height: (a: number, b: number) => void;
  readonly __wbg_set_excelinfo_default_row_height: (a: number, b: number, c: number) => void;
  readonly __wbg_get_excelinfo_dx: (a: number) => number;
  readonly __wbg_set_excelinfo_dx: (a: number, b: number) => void;
  readonly __wbg_get_excelinfo_dy: (a: number) => number;
  readonly __wbg_set_excelinfo_dy: (a: number, b: number) => void;
  readonly __wbg_get_excelinfo_is_header_freeze: (a: number) => number;
  readonly __wbg_set_excelinfo_is_header_freeze: (a: number, b: number) => void;
  readonly excelinfo_bind_new: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number) => number;
  readonly excelinfo_withTitle: (a: number, b: number, c: number) => number;
  readonly excelinfo_withDefaultRowHeight: (a: number, b: number) => number;
  readonly excelinfo_withTitleHeight: (a: number, b: number) => number;
  readonly excelinfo_withTitleFormat: (a: number, b: number) => number;
  readonly excelinfo_withOffset: (a: number, b: number, c: number) => number;
  readonly excelinfo_withIsHeaderFreeze: (a: number, b: number) => number;
  readonly excelinfo_withProgressCallback: (a: number, b: number) => number;
  readonly excelinfo_withImageFetcher: (a: number, b: number) => number;
  readonly __wbg_excelcellformat_free: (a: number, b: number) => void;
  readonly __wbg_get_excelcellformat_rule: (a: number, b: number) => void;
  readonly __wbg_set_excelcellformat_rule: (a: number, b: number, c: number) => void;
  readonly __wbg_get_excelcellformat_value: (a: number, b: number) => void;
  readonly __wbg_set_excelcellformat_value: (a: number, b: number, c: number) => void;
  readonly __wbg_get_excelcellformat_color: (a: number, b: number) => void;
  readonly __wbg_set_excelcellformat_color: (a: number, b: number, c: number) => void;
  readonly __wbg_get_excelcellformat_bold: (a: number) => number;
  readonly __wbg_set_excelcellformat_bold: (a: number, b: number) => void;
  readonly __wbg_get_excelcellformat_italic: (a: number) => number;
  readonly __wbg_set_excelcellformat_italic: (a: number, b: number) => void;
  readonly __wbg_get_excelcellformat_underline: (a: number) => number;
  readonly __wbg_set_excelcellformat_underline: (a: number, b: number) => void;
  readonly __wbg_get_excelcellformat_strikethrough: (a: number) => number;
  readonly __wbg_set_excelcellformat_strikethrough: (a: number, b: number) => void;
  readonly __wbg_get_excelcellformat_font_size: (a: number) => number;
  readonly __wbg_set_excelcellformat_font_size: (a: number, b: number) => void;
  readonly __wbg_get_excelcellformat_background_color: (a: number, b: number) => void;
  readonly __wbg_set_excelcellformat_background_color: (a: number, b: number, c: number) => void;
  readonly __wbg_get_excelcellformat_align: (a: number, b: number) => void;
  readonly __wbg_set_excelcellformat_align: (a: number, b: number, c: number) => void;
  readonly __wbg_get_excelcellformat_align_vertical: (a: number, b: number) => void;
  readonly __wbg_set_excelcellformat_align_vertical: (a: number, b: number, c: number) => void;
  readonly __wbg_get_excelcellformat_date_format: (a: number, b: number) => void;
  readonly __wbg_set_excelcellformat_date_format: (a: number, b: number, c: number) => void;
  readonly __wbg_get_excelcellformat_border_color: (a: number, b: number) => void;
  readonly __wbg_set_excelcellformat_border_color: (a: number, b: number, c: number) => void;
  readonly excelcellformat_new: () => number;
  readonly excelcellformat_withRule: (a: number, b: number, c: number) => number;
  readonly excelcellformat_withValue: (a: number, b: number, c: number) => number;
  readonly excelcellformat_withColor: (a: number, b: number, c: number) => number;
  readonly excelcellformat_withBold: (a: number, b: number) => number;
  readonly excelcellformat_withItalic: (a: number, b: number) => number;
  readonly excelcellformat_withUnderline: (a: number, b: number) => number;
  readonly excelcellformat_withStrikethrough: (a: number, b: number) => number;
  readonly excelcellformat_withFontSize: (a: number, b: number) => number;
  readonly excelcellformat_withBackgroundColor: (a: number, b: number, c: number) => number;
  readonly excelcellformat_withAlign: (a: number, b: number, c: number) => number;
  readonly excelcellformat_withAlignVertical: (a: number, b: number, c: number) => number;
  readonly excelcellformat_withDateFormat: (a: number, b: number, c: number) => number;
  readonly excelcellformat_withBorderColor: (a: number, b: number, c: number) => number;
  readonly __wbg_excelcolumninfo_free: (a: number, b: number) => void;
  readonly __wbg_get_excelcolumninfo_key: (a: number, b: number) => void;
  readonly __wbg_set_excelcolumninfo_key: (a: number, b: number, c: number) => void;
  readonly __wbg_get_excelcolumninfo_name: (a: number, b: number) => void;
  readonly __wbg_set_excelcolumninfo_name: (a: number, b: number, c: number) => void;
  readonly __wbg_get_excelcolumninfo_width: (a: number) => number;
  readonly __wbg_set_excelcolumninfo_width: (a: number, b: number) => void;
  readonly __wbg_get_excelcolumninfo_note: (a: number, b: number) => void;
  readonly __wbg_set_excelcolumninfo_note: (a: number, b: number, c: number) => void;
  readonly __wbg_get_excelcolumninfo_data_type: (a: number, b: number) => void;
  readonly __wbg_set_excelcolumninfo_data_type: (a: number, b: number, c: number) => void;
  readonly __wbg_get_excelcolumninfo_allowed_values: (a: number, b: number) => void;
  readonly __wbg_set_excelcolumninfo_allowed_values: (a: number, b: number, c: number) => void;
  readonly __wbg_get_excelcolumninfo_parent: (a: number, b: number) => void;
  readonly __wbg_set_excelcolumninfo_parent: (a: number, b: number, c: number) => void;
  readonly __wbg_get_excelcolumninfo_format: (a: number) => number;
  readonly __wbg_set_excelcolumninfo_format: (a: number, b: number) => void;
  readonly __wbg_get_excelcolumninfo_value_format: (a: number, b: number) => void;
  readonly __wbg_set_excelcolumninfo_value_format: (a: number, b: number, c: number) => void;
  readonly __wbg_get_excelcolumninfo_data_group: (a: number, b: number) => void;
  readonly __wbg_set_excelcolumninfo_data_group: (a: number, b: number, c: number) => void;
  readonly __wbg_get_excelcolumninfo_data_group_parent: (a: number, b: number) => void;
  readonly __wbg_set_excelcolumninfo_data_group_parent: (a: number, b: number, c: number) => void;
  readonly excelcolumninfo_bind_new: (a: number, b: number, c: number, d: number) => number;
  readonly excelcolumninfo_withNote: (a: number, b: number, c: number) => number;
  readonly excelcolumninfo_withDataType: (a: number, b: number, c: number) => number;
  readonly excelcolumninfo_withAllowedValues: (a: number, b: number, c: number) => number;
  readonly excelcolumninfo_withWidth: (a: number, b: number) => number;
  readonly excelcolumninfo_withFormat: (a: number, b: number) => number;
  readonly excelcolumninfo_withParent: (a: number, b: number, c: number) => number;
  readonly excelcolumninfo_withValueFormat: (a: number, b: number, c: number) => number;
  readonly excelcolumninfo_withDataGroup: (a: number, b: number, c: number) => number;
  readonly excelcolumninfo_withDataGroupParent: (a: number, b: number, c: number) => number;
  readonly __wbg_excelcolumndata_free: (a: number, b: number) => void;
  readonly __wbg_get_excelcolumndata_key: (a: number, b: number) => void;
  readonly __wbg_set_excelcolumndata_key: (a: number, b: number, c: number) => void;
  readonly __wbg_get_excelcolumndata_value: (a: number, b: number) => void;
  readonly __wbg_set_excelcolumndata_value: (a: number, b: number, c: number) => void;
  readonly __wbg_get_excelcolumndata_children: (a: number, b: number) => void;
  readonly __wbg_set_excelcolumndata_children: (a: number, b: number, c: number) => void;
  readonly excelcolumndata_bind_new: (a: number, b: number, c: number, d: number) => number;
  readonly excelcolumndata_newGroup: (a: number, b: number, c: number, d: number, e: number, f: number) => number;
  readonly excelcolumndata_newRootGroup: (a: number, b: number, c: number, d: number) => number;
  readonly excelcolumndata_withChildren: (a: number, b: number, c: number) => number;
  readonly __wbindgen_exn_store: (a: number) => void;
  readonly __wbindgen_export_1: WebAssembly.Table;
  readonly __wbindgen_malloc: (a: number, b: number) => number;
  readonly __wbindgen_realloc: (a: number, b: number, c: number, d: number) => number;
  readonly __wbindgen_add_to_stack_pointer: (a: number) => number;
  readonly __wbindgen_free: (a: number, b: number, c: number) => void;
  readonly _dyn_core__ops__function__FnMut__A____Output___R_as_wasm_bindgen__closure__WasmClosure___describe__invoke__h34f632cd519c3a96: (a: number, b: number, c: number) => void;
  readonly wasm_bindgen__convert__closures__invoke2_mut__h059b1e71ab984223: (a: number, b: number, c: number, d: number) => void;
}

export type SyncInitInput = BufferSource | WebAssembly.Module;
/**
* Instantiates the given `module`, which can either be bytes or
* a precompiled `WebAssembly.Module`.
*
* @param {{ module: SyncInitInput }} module - Passing `SyncInitInput` directly is deprecated.
*
* @returns {InitOutput}
*/
export function initSync(module: { module: SyncInitInput } | SyncInitInput): InitOutput;

/**
* If `module_or_path` is {RequestInfo} or {URL}, makes a request and
* for everything else, calls `WebAssembly.instantiate` directly.
*
* @param {{ module_or_path: InitInput | Promise<InitInput> }} module_or_path - Passing `InitInput` directly is deprecated.
*
* @returns {Promise<InitOutput>}
*/
export default function __wbg_init (module_or_path?: { module_or_path: InitInput | Promise<InitInput> } | InitInput | Promise<InitInput>): Promise<InitOutput>;
