/* tslint:disable */
/* eslint-disable */
/**
 * Register a plugin globally.
 */
export function registerPlugin(name: string): void;
/**
 * Register this crate's Custom Elements in the browser's current session.
 *
 * This must occur before calling any public API methods on these Custom
 * Elements from JavaScript, as the methods themselves won't be defined yet.
 * By default, this crate does not register `PerspectiveViewerElement` (as to
 * preserve backwards-compatible synchronous API).
 */
export function init(): void;

import type {
    TableInitOptions, 
    ViewWindow, 
    OnUpdateOptions,
    UpdateOptions, 
    ViewConfigUpdate,
} from "@finos/perspective";


export class Client {
  free(): void;
  constructor(send_request: Function, close?: Function | null);
  new_proxy_session(on_response: Function): ProxySession;
  init(): Promise<void>;
  handle_response(value: any): Promise<void>;
  handle_error(error?: string | null, reconnect?: Function | null): Promise<void>;
  on_error(callback: Function): Promise<number>;
  table(value: string | ArrayBuffer | Record<string, unknown[]> | Record<string, unknown>[], options?: TableInitOptions | null): Promise<Table>;
  terminate(): any;
  open_table(entity_id: string): Promise<Table>;
  get_hosted_table_names(): Promise<any>;
  on_hosted_tables_update(on_update_js: Function): Promise<number>;
  remove_hosted_tables_update(update_id: number): Promise<void>;
  system_info(): Promise<any>;
}
export class ColumnDropDownElement {
  private constructor();
  free(): void;
}
export class CopyDropDownMenuElement {
  free(): void;
  constructor(elem: HTMLElement);
  open(target: HTMLElement): void;
  hide(): void;
  /**
   * Internal Only.
   *
   * Set this custom element model's raw pointer.
   */
  set_model(parent: PerspectiveViewerElement): void;
  connected_callback(): void;
}
export class ExportDropDownMenuElement {
  free(): void;
  constructor(elem: HTMLElement);
  open(target: HTMLElement): void;
  hide(): void;
  /**
   * Internal Only.
   *
   * Set this custom element model's raw pointer.
   */
  set_model(parent: PerspectiveViewerElement): void;
  connected_callback(): void;
}
export class FilterDropDownElement {
  private constructor();
  free(): void;
}
export class FunctionDropDownElement {
  private constructor();
  free(): void;
}
/**
 * The `<perspective-viewer-plugin>` element.
 *
 * The default perspective plugin which is registered and activated
 * automcatically when a `<perspective-viewer>` is loaded without plugins.
 * While you will not typically instantiate this class directly, it is simple
 * enough to function as a good "default" plugin implementation which can be
 * extended to create custom plugins.
 *
 * # Example
 * ```javascript
 * class MyPlugin extends customElements.get("perspective-viewer-plugin") {
 *    // Custom plugin overrides
 * }
 * ```
 */
export class PerspectiveDebugPluginElement {
  free(): void;
  constructor(elem: HTMLElement);
  update(view: View): Promise<any>;
  /**
   * # Notes
   *
   * When you pass a `wasm_bindgen` wrapped type _into_ Rust, it acts like a
   * move. Ergo, if you replace the `&` in the `view` argument, the JS copy
   * of the `View` will be invalid
   */
  draw(view: View): Promise<any>;
  clear(): Promise<any>;
  resize(): Promise<any>;
  restyle(): Promise<any>;
  save(): Promise<any>;
  restore(): Promise<any>;
  delete(): Promise<any>;
  connectedCallback(): void;
  readonly name: string;
  readonly select_mode: string;
  readonly min_config_columns: any;
  readonly config_column_names: any;
}
/**
 * The `<perspective-viewer>` custom element.
 *
 * # JavaScript Examples
 *
 * Create a new `<perspective-viewer>`:
 *
 * ```javascript
 * const viewer = document.createElement("perspective-viewer");
 * window.body.appendChild(viewer);
 * ```
 */
export class PerspectiveViewerElement {
  free(): void;
  constructor(elem: HTMLElement);
  connectedCallback(): void;
  /**
   * Loads a [`Table`] (or rather, a Javascript `Promise` which returns a
   * [`Table`]) in this viewer.
   *
   * When [`PerspectiveViewerElement::load`] resolves, the first frame of the
   * UI + visualization is guaranteed to have been drawn. Awaiting the result
   * of this method in a `try`/`catch` block will capture any errors
   * thrown during the loading process, or from the [`Table`] `Promise`
   * itself.
   *
   * A [`Table`] can be created using the
   * [`@finos/perspective`](https://www.npmjs.com/package/@finos/perspective)
   * library from NPM (see [`perspective_js`] documentation for details).
   *
   * # JavaScript Examples
   *
   * ```javascript
   * import perspective from "@finos/perspective";
   *
   * const worker = await perspective.worker();
   * viewer.load(worker.table("x,y\n1,2"));
   * ```
   */
  load(table: any): Promise<any>;
  /**
   * Delete the internal [`View`] and all associated state, rendering this
   * `<perspective-viewer>` unusable and freeing all associated resources.
   * Does not delete the supplied [`Table`] (as this is constructed by the
   * callee).
   *
   * <div class="warning">
   *
   * Allowing a `<perspective-viewer>` to be garbage-collected
   * without calling [`PerspectiveViewerElement::delete`] will leak WASM
   * memory!
   *
   * </div>
   *
   * # JavaScript Examples
   *
   * ```javascript
   * await viewer.delete();
   * ```
   */
  delete(): Promise<any>;
  /**
   * Get the underlying [`View`] for this viewer.
   *
   * Use this method to get promgrammatic access to the [`View`] as currently
   * configured by the user, for e.g. serializing as an
   * [Apache Arrow](https://arrow.apache.org/) before passing to another
   * library.
   *
   * The [`View`] returned by this method is owned by the
   * [`PerspectiveViewerElement`] and may be _invalidated_ by
   * [`View::delete`] at any time. Plugins which rely on this [`View`] for
   * their [`HTMLPerspectiveViewerPluginElement::draw`] implementations
   * should treat this condition as a _cancellation_ by silently aborting on
   * "View already deleted" errors from method calls.
   *
   * # JavaScript Examples
   *
   * ```javascript
   * const view = await viewer.getView();
   * ```
   */
  getView(): Promise<any>;
  /**
   * Get the underlying [`Table`] for this viewer (as passed to
   * [`PerspectiveViewerElement::load`]).
   *
   * # Arguments
   *
   * - `wait_for_table` - whether to wait for
   *   [`PerspectiveViewerElement::load`] to be called, or fail immediately
   *   if [`PerspectiveViewerElement::load`] has not yet been called.
   *
   * # JavaScript Examples
   *
   * ```javascript
   * const table = await viewer.getTable();
   * ```
   */
  getTable(wait_for_table?: boolean | null): Promise<any>;
  /**
   * Get render statistics. Some fields of the returned stats object are
   * relative to the last time [`PerspectiveViewerElement::getRenderStats`]
   * was called, ergo calling this method resets these fields.
   *
   * # JavaScript Examples
   *
   * ```javascript
   * const {virtual_fps, actual_fps} = await viewer.getRenderStats();
   * ```
   */
  getRenderStats(): any;
  /**
   * Flush any pending modifications to this `<perspective-viewer>`.  Since
   * `<perspective-viewer>`'s API is almost entirely `async`, it may take
   * some milliseconds before any user-initiated changes to the [`View`]
   * affects the rendered element.  If you want to make sure all pending
   * actions have been rendered, call and await [`Self::flush`].
   *
   * [`Self::flush`] will resolve immediately if there is no [`Table`] set.
   *
   * # JavaScript Examples
   *
   * In this example, [`Self::restore`] is called without `await`, but the
   * eventual render which results from this call can still be awaited by
   * immediately awaiting [`Self::flush`] instead.
   *
   * ```javascript
   * viewer.restore(config);
   * await viewer.flush();
   * ```
   */
  flush(): Promise<any>;
  /**
   * Restores this element from a full/partial
   * [`perspective_js::JsViewConfig`].
   *
   * One of the best ways to use [`Self::restore`] is by first configuring
   * a `<perspective-viewer>` as you wish, then using either the `Debug`
   * panel or "Copy" -> "config.json" from the toolbar menu to snapshot
   * the [`Self::restore`] argument as JSON.
   *
   * # Arguments
   *
   * - `update` - The config to restore to, as returned by [`Self::save`] in
   *   either "json", "string" or "arraybuffer" format.
   *
   * # JavaScript Examples
   *
   * Apply a `group_by` to the current [`View`], without modifying/resetting
   * other fields:
   *
   * ```javascript
   * await viewer.restore({group_by: ["State"]});
   * ```
   */
  restore(update: any): Promise<any>;
  resetError(): Promise<any>;
  /**
   * Save this element to serialized state object, one which can be restored
   * via the [`Self::restore`] method.
   *
   * # Arguments
   *
   * - `format` - Supports "json" (default), "arraybuffer" or "string".
   *
   * # JavaScript Examples
   *
   * Get the current `group_by` setting:
   *
   * ```javascript
   * const {group_by} = await viewer.restore();
   * ```
   *
   * Reset workflow attached to an external button `myResetButton`:
   *
   * ```javascript
   * const token = await viewer.save();
   * myResetButton.addEventListener("clien", async () => {
   *     await viewer.restore(token);
   * });
   * ```
   */
  save(format?: string | null): Promise<any>;
  /**
   * Download this viewer's internal [`View`] data as a `.csv` file.
   *
   * # Arguments
   *
   * - `flat` - Whether to use the current [`perspective_js::JsViewConfig`]
   *   to generate this data, or use the default.
   *
   * # JavaScript Examples
   *
   * ```javascript
   * myDownloadButton.addEventListener("click", async () => {
   *     await viewer.download();
   * })
   * ```
   */
  download(flat?: boolean | null): Promise<any>;
  /**
   * Copy this viewer's `View` or `Table` data as CSV to the system
   * clipboard.
   *
   * # Arguments
   *
   * - `flat` - Whether to use the current [`perspective_js::JsViewConfig`]
   *   to generate this data, or use the default.
   *
   * # JavaScript Examples
   *
   * ```javascript
   * myDownloadButton.addEventListener("click", async () => {
   *     await viewer.copy();
   * })
   * ```
   */
  copy(flat?: boolean | null): Promise<any>;
  /**
   * Reset the viewer's `ViewerConfig` to the default.
   *
   * # Arguments
   *
   * - `reset_all` - If set, will clear expressions and column settings as
   *   well.
   *
   * # JavaScript Examples
   *
   * ```javascript
   * await viewer.reset();
   * ```
   */
  reset(reset_all?: boolean | null): Promise<any>;
  /**
   * Recalculate the viewer's dimensions and redraw.
   *
   * Use this method to tell `<perspective-viewer>` its dimensions have
   * changed when auto-size mode has been disabled via [`Self::setAutoSize`].
   * [`Self::resize`] resolves when the resize-initiated redraw of this
   * element has completed.
   *
   * # Arguments
   *
   * - `force` - If [`Self::resize`] is called with `false` or without an
   *   argument, and _auto-size_ mode is enabled via [`Self::setAutoSize`],
   *   [`Self::resize`] will log a warning and auto-disable auto-size mode.
   *
   * # JavaScript Examples
   *
   * ```javascript
   * await viewer.resize(true)
   * ```
   */
  resize(force?: boolean | null): Promise<any>;
  /**
   * Sets the auto-size behavior of this component.
   *
   * When `true`, this `<perspective-viewer>` will register a
   * `ResizeObserver` on itself and call [`Self::resize`] whenever its own
   * dimensions change. However, when embedded in a larger application
   * context, you may want to call [`Self::resize`] manually to avoid
   * over-rendering; in this case auto-sizing can be disabled via this
   * method. Auto-size behavior is enabled by default.
   *
   * # Arguments
   *
   * - `autosize` - Whether to enable `auto-size` behavior or not.
   *
   * # JavaScript Examples
   *
   * Disable auto-size behavior:
   *
   * ```javascript
   * viewer.setAutoSize(false);
   * ```
   */
  setAutoSize(autosize: boolean): void;
  /**
   * Sets the auto-pause behavior of this component.
   *
   * When `true`, this `<perspective-viewer>` will register an
   * `IntersectionObserver` on itself and subsequently skip rendering
   * whenever its viewport visibility changes. Auto-pause is enabled by
   * default.
   *
   * # Arguments
   *
   * - `autopause` Whether to enable `auto-pause` behavior or not.
   *
   * # JavaScript Examples
   *
   * Disable auto-size behavior:
   *
   * ```javascript
   * viewer.setAutoPause(false);
   * ```
   */
  setAutoPause(autopause: boolean): void;
  /**
   * Return a [`perspective_js::JsViewWindow`] for the currently selected
   * region.
   */
  getSelection(): ViewWindow | undefined;
  /**
   * Set the selection [`perspective_js::JsViewWindow`] for this element.
   */
  setSelection(window?: ViewWindow | null): void;
  /**
   * Get this viewer's edit port for the currently loaded [`Table`] (see
   * [`Table::update`] for details on ports).
   */
  getEditPort(): number;
  /**
   * Restyle all plugins from current document.
   *
   * <div class="warning">
   *
   * [`Self::restyleElement`] _must_ be called for many runtime changes to
   * CSS properties to be reflected in an already-rendered
   * `<perspective-viewer>`.
   *
   * </div>
   *
   * # JavaScript Examples
   *
   * ```javascript
   * viewer.style = "--icon--color: red";
   * await viewer.restyleElement();
   * ```
   */
  restyleElement(): Promise<any>;
  /**
   * Set the available theme names available in the status bar UI.
   *
   * Calling [`Self::resetThemes`] may cause the current theme to switch,
   * if e.g. the new theme set does not contain the current theme.
   *
   * # JavaScript Examples
   *
   * Restrict `<perspective-viewer>` theme options to _only_ default light
   * and dark themes, regardless of what is auto-detected from the page's
   * CSS:
   *
   * ```javascript
   * viewer.resetThemes(["Pro Light", "Pro Dark"])
   * ```
   */
  resetThemes(themes?: any[] | null): Promise<any>;
  /**
   * Determines the render throttling behavior. Can be an integer, for
   * millisecond window to throttle render event; or, if `None`, adaptive
   * throttling will be calculated from the measured render time of the
   * last 5 frames.
   *
   * # Arguments
   *
   * - `throttle` - The throttle rate in milliseconds (f64), or `None` for
   *   adaptive throttling.
   *
   * # JavaScript Examples
   *
   * Only draws at most 1 frame/sec:
   *
   * ```rust
   * viewer.setThrottle(1000);
   * ```
   */
  setThrottle(val?: number | null): void;
  /**
   * Toggle (or force) the config panel open/closed.
   *
   * # Arguments
   *
   * - `force` - Force the state of the panel open or closed, or `None` to
   *   toggle.
   *
   * # JavaScript Examples
   *
   * ```javascript
   * await viewer.toggleConfig();
   * ```
   */
  toggleConfig(force?: boolean | null): Promise<any>;
  /**
   * Get an `Array` of all of the plugin custom elements registered for this
   * element. This may not include plugins which called
   * [`registerPlugin`] after the host has rendered for the first time.
   */
  getAllPlugins(): Array<any>;
  /**
   * Gets a plugin Custom Element with the `name` field, or get the active
   * plugin if no `name` is provided.
   *
   * # Arguments
   *
   * - `name` - The `name` property of a perspective plugin Custom Element,
   *   or `None` for the active plugin's Custom Element.
   */
  getPlugin(name?: string | null): any;
  /**
   * Create a new JavaScript Heap reference for this model instance.
   */
  get_model(): PerspectiveViewerElement;
  /**
   * Asynchronously opens the column settings for a specific column.
   * When finished, the `<perspective-viewer>` element will emit a
   * "perspective-toggle-column-settings" CustomEvent.
   * The event's details property has two fields: `{open: bool, column_name?:
   * string}`. The CustomEvent is also fired whenever the user toggles the
   * sidebar manually.
   */
  toggleColumnSettings(column_name: string): Promise<any>;
  /**
   * Force open the settings for a particular column. Pass `null` to close
   * the column settings panel. See [`Self::toggleColumnSettings`] for more.
   */
  openColumnSettings(column_name?: string | null, toggle?: boolean | null): Promise<any>;
}
export class ProxySession {
  free(): void;
  constructor(client: Client, on_response: Function);
  handle_request(value: any): Promise<void>;
  poll(): Promise<void>;
  close(): Promise<void>;
}
export class Table {
  private constructor();
  free(): void;
  __getClassname(): string;
  get_index(): Promise<string | undefined>;
  get_client(): Promise<Client>;
  get_name(): Promise<string>;
  get_limit(): Promise<number | undefined>;
  clear(): Promise<void>;
  delete(): Promise<void>;
  size(): Promise<number>;
  schema(): Promise<any>;
  columns(): Promise<any>;
  make_port(): Promise<number>;
  on_delete(on_delete: Function): Promise<number>;
  remove_delete(callback_id: number): Promise<any>;
  remove(value: any, options?: UpdateOptions | null): Promise<void>;
  replace(input: any, options?: UpdateOptions | null): Promise<void>;
  update(input: string | ArrayBuffer | Record<string, unknown[]> | Record<string, unknown>[], options?: UpdateOptions | null): Promise<void>;
  view(config?: ViewConfigUpdate | null): Promise<View>;
  validate_expressions(exprs: any): Promise<any>;
}
export class View {
  private constructor();
  free(): void;
  __get_model(): View;
  column_paths(): Promise<any>;
  delete(): Promise<void>;
  dimensions(): Promise<any>;
  expression_schema(): Promise<any>;
  get_config(): Promise<any>;
  get_min_max(name: string): Promise<Array<any>>;
  num_rows(): Promise<number>;
  schema(): Promise<any>;
  to_arrow(window?: ViewWindow | null): Promise<ArrayBuffer>;
  to_columns_string(window?: ViewWindow | null): Promise<string>;
  to_columns(window?: ViewWindow | null): Promise<object>;
  to_json_string(window?: ViewWindow | null): Promise<string>;
  to_json(window?: ViewWindow | null): Promise<Array<any>>;
  to_ndjson(window?: ViewWindow | null): Promise<string>;
  to_csv(window?: ViewWindow | null): Promise<string>;
  on_update(on_update_js: Function, options?: OnUpdateOptions | null): Promise<number>;
  remove_update(callback_id: number): Promise<void>;
  on_delete(on_delete: Function): Promise<number>;
  num_columns(): Promise<number>;
  remove_delete(callback_id: number): Promise<any>;
  collapse(row_index: number): Promise<number>;
  expand(row_index: number): Promise<number>;
  set_depth(depth: number): Promise<void>;
}

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

export interface InitOutput {
  readonly memory: WebAssembly.Memory;
  readonly __wbg_columndropdownelement_free: (a: number, b: number) => void;
  readonly __wbg_copydropdownmenuelement_free: (a: number, b: number) => void;
  readonly copydropdownmenuelement_new: (a: number) => number;
  readonly copydropdownmenuelement_open: (a: number, b: number) => void;
  readonly copydropdownmenuelement_hide: (a: number, b: number) => void;
  readonly copydropdownmenuelement_set_model: (a: number, b: number) => void;
  readonly copydropdownmenuelement_connected_callback: (a: number) => void;
  readonly __wbg_perspectivedebugpluginelement_free: (a: number, b: number) => void;
  readonly perspectivedebugpluginelement_new: (a: number) => number;
  readonly perspectivedebugpluginelement_name: (a: number, b: number) => void;
  readonly perspectivedebugpluginelement_select_mode: (a: number, b: number) => void;
  readonly perspectivedebugpluginelement_config_column_names: (a: number) => number;
  readonly perspectivedebugpluginelement_draw: (a: number, b: number) => number;
  readonly perspectivedebugpluginelement_clear: (a: number) => number;
  readonly perspectivedebugpluginelement_connectedCallback: (a: number) => void;
  readonly exportdropdownmenuelement_open: (a: number, b: number) => void;
  readonly exportdropdownmenuelement_hide: (a: number, b: number) => void;
  readonly exportdropdownmenuelement_set_model: (a: number, b: number) => void;
  readonly __wbg_filterdropdownelement_free: (a: number, b: number) => void;
  readonly __wbg_functiondropdownelement_free: (a: number, b: number) => void;
  readonly __wbg_perspectiveviewerelement_free: (a: number, b: number) => void;
  readonly perspectiveviewerelement_new: (a: number) => number;
  readonly perspectiveviewerelement_connectedCallback: (a: number) => void;
  readonly perspectiveviewerelement_load: (a: number, b: number) => number;
  readonly perspectiveviewerelement_delete: (a: number) => number;
  readonly perspectiveviewerelement_getView: (a: number) => number;
  readonly perspectiveviewerelement_getTable: (a: number, b: number) => number;
  readonly perspectiveviewerelement_getRenderStats: (a: number, b: number) => void;
  readonly perspectiveviewerelement_flush: (a: number) => number;
  readonly perspectiveviewerelement_restore: (a: number, b: number) => number;
  readonly perspectiveviewerelement_resetError: (a: number) => number;
  readonly perspectiveviewerelement_save: (a: number, b: number, c: number) => number;
  readonly perspectiveviewerelement_download: (a: number, b: number) => number;
  readonly perspectiveviewerelement_copy: (a: number, b: number) => number;
  readonly perspectiveviewerelement_reset: (a: number, b: number) => number;
  readonly perspectiveviewerelement_resize: (a: number, b: number) => number;
  readonly perspectiveviewerelement_setAutoSize: (a: number, b: number) => void;
  readonly perspectiveviewerelement_setAutoPause: (a: number, b: number) => void;
  readonly perspectiveviewerelement_getSelection: (a: number) => number;
  readonly perspectiveviewerelement_setSelection: (a: number, b: number, c: number) => void;
  readonly perspectiveviewerelement_getEditPort: (a: number, b: number) => void;
  readonly perspectiveviewerelement_restyleElement: (a: number) => number;
  readonly perspectiveviewerelement_resetThemes: (a: number, b: number, c: number) => number;
  readonly perspectiveviewerelement_setThrottle: (a: number, b: number, c: number) => void;
  readonly perspectiveviewerelement_toggleConfig: (a: number, b: number) => number;
  readonly perspectiveviewerelement_getAllPlugins: (a: number) => number;
  readonly perspectiveviewerelement_getPlugin: (a: number, b: number, c: number, d: number) => void;
  readonly perspectiveviewerelement_get_model: (a: number) => number;
  readonly perspectiveviewerelement_toggleColumnSettings: (a: number, b: number, c: number) => number;
  readonly perspectiveviewerelement_openColumnSettings: (a: number, b: number, c: number, d: number) => number;
  readonly registerPlugin: (a: number, b: number) => void;
  readonly init: () => void;
  readonly perspectivedebugpluginelement_min_config_columns: (a: number) => number;
  readonly perspectivedebugpluginelement_update: (a: number, b: number) => number;
  readonly perspectivedebugpluginelement_resize: (a: number) => number;
  readonly perspectivedebugpluginelement_restyle: (a: number) => number;
  readonly perspectivedebugpluginelement_save: (a: number) => number;
  readonly perspectivedebugpluginelement_restore: (a: number) => number;
  readonly perspectivedebugpluginelement_delete: (a: number) => number;
  readonly exportdropdownmenuelement_new: (a: number) => number;
  readonly __wbg_exportdropdownmenuelement_free: (a: number, b: number) => void;
  readonly exportdropdownmenuelement_connected_callback: (a: number) => void;
  readonly __wbg_proxysession_free: (a: number, b: number) => void;
  readonly proxysession_handle_request: (a: number, b: number) => number;
  readonly proxysession_poll: (a: number) => number;
  readonly proxysession_close: (a: number) => number;
  readonly __wbg_client_free: (a: number, b: number) => void;
  readonly client_new: (a: number, b: number) => number;
  readonly client_new_proxy_session: (a: number, b: number) => number;
  readonly client_init: (a: number) => number;
  readonly client_handle_response: (a: number, b: number) => number;
  readonly client_handle_error: (a: number, b: number, c: number, d: number) => number;
  readonly client_on_error: (a: number, b: number) => number;
  readonly client_table: (a: number, b: number, c: number) => number;
  readonly client_terminate: (a: number, b: number) => void;
  readonly client_open_table: (a: number, b: number, c: number) => number;
  readonly client_get_hosted_table_names: (a: number) => number;
  readonly client_on_hosted_tables_update: (a: number, b: number) => number;
  readonly client_remove_hosted_tables_update: (a: number, b: number) => number;
  readonly client_system_info: (a: number) => number;
  readonly table___getClassname: (a: number, b: number) => void;
  readonly __wbg_table_free: (a: number, b: number) => void;
  readonly table_get_index: (a: number) => number;
  readonly table_get_client: (a: number) => number;
  readonly table_get_name: (a: number) => number;
  readonly table_get_limit: (a: number) => number;
  readonly table_clear: (a: number) => number;
  readonly table_delete: (a: number) => number;
  readonly table_size: (a: number) => number;
  readonly table_schema: (a: number) => number;
  readonly table_columns: (a: number) => number;
  readonly table_make_port: (a: number) => number;
  readonly table_on_delete: (a: number, b: number) => number;
  readonly table_remove_delete: (a: number, b: number) => number;
  readonly table_remove: (a: number, b: number, c: number) => number;
  readonly table_replace: (a: number, b: number, c: number) => number;
  readonly table_update: (a: number, b: number, c: number) => number;
  readonly table_view: (a: number, b: number) => number;
  readonly table_validate_expressions: (a: number, b: number) => number;
  readonly __wbg_view_free: (a: number, b: number) => void;
  readonly view___get_model: (a: number) => number;
  readonly view_column_paths: (a: number) => number;
  readonly view_delete: (a: number) => number;
  readonly view_dimensions: (a: number) => number;
  readonly view_expression_schema: (a: number) => number;
  readonly view_get_config: (a: number) => number;
  readonly view_get_min_max: (a: number, b: number, c: number) => number;
  readonly view_num_rows: (a: number) => number;
  readonly view_schema: (a: number) => number;
  readonly view_to_arrow: (a: number, b: number) => number;
  readonly view_to_columns_string: (a: number, b: number) => number;
  readonly view_to_columns: (a: number, b: number) => number;
  readonly view_to_json_string: (a: number, b: number) => number;
  readonly view_to_json: (a: number, b: number) => number;
  readonly view_to_ndjson: (a: number, b: number) => number;
  readonly view_to_csv: (a: number, b: number) => number;
  readonly view_on_update: (a: number, b: number, c: number) => number;
  readonly view_remove_update: (a: number, b: number) => number;
  readonly view_on_delete: (a: number, b: number) => number;
  readonly view_num_columns: (a: number) => number;
  readonly view_remove_delete: (a: number, b: number) => number;
  readonly view_collapse: (a: number, b: number) => number;
  readonly view_expand: (a: number, b: number) => number;
  readonly view_set_depth: (a: number, b: number) => number;
  readonly proxysession_new: (a: number, b: number) => number;
  readonly __wbindgen_export_0: (a: number, b: number) => number;
  readonly __wbindgen_export_1: (a: number, b: number, c: number, d: number) => number;
  readonly __wbindgen_export_2: (a: number) => void;
  readonly __wbindgen_export_3: (a: number, b: number, c: number) => void;
  readonly __wbindgen_export_4: WebAssembly.Table;
  readonly __wbindgen_add_to_stack_pointer: (a: number) => number;
  readonly __wbindgen_export_5: (a: number, b: number, c: number) => void;
  readonly __wbindgen_export_6: (a: number, b: number, c: number) => void;
  readonly __wbindgen_export_7: (a: number, b: number, c: number) => void;
  readonly __wbindgen_export_8: (a: number, b: number) => number;
  readonly __wbindgen_export_9: (a: number, b: number, c: number) => void;
  readonly __wbindgen_export_10: (a: number, b: number) => void;
  readonly __wbindgen_export_11: (a: number, b: number, c: number) => void;
  readonly __wbindgen_export_12: (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>;
