///
export type * from "../../dist/wasm/perspective-js.d.ts";
import { WebSocketServer as HttpWebSocketServer } from "ws";
import http from "node:http";
import * as perspective_client from "../../dist/wasm/perspective-js.js";
import * as engine from "./wasm/engine.ts";
export declare class PerspectiveServer extends engine.PerspectiveServer {
constructor(options?: engine.PerspectiveServerOptions);
}
export declare const make_session: (send_response: (buffer: Uint8Array) => Promise) => Promise;
export declare function make_client(send_request: (buffer: Uint8Array) => Promise, close?: Function): perspective_client.Client;
/**
* Host a Perspective server that hosts data, code files, etc.
* Strip version numbers from the URL so we can handle CDN-like requests
* of the form @[^~]major.minor.patch when testing local versions of
* Perspective against Voila.
*/
export declare function cwd_static_file_handler(request: http.IncomingMessage, response: http.ServerResponse, assets?: string[], { debug }?: {
debug?: boolean | undefined;
}): Promise;
export declare class WebSocketServer {
_server: http.Server | any;
_wss: HttpWebSocketServer;
constructor({ port, assets, server }?: {
port?: number | undefined;
assets?: string[] | undefined;
server?: undefined;
});
close(): Promise;
}
export declare function get_hosted_table_names(): Promise;
export declare function on_hosted_tables_update(cb: () => void): Promise;
export declare function remove_hosted_tables_update(id: number): Promise;
export declare function system_info(): Promise;
export declare function on_error(callback: Function): Promise;
/**
* Create a table from the global Perspective instance.
* @param init_data
* @param options
* @returns
*/
export declare function table(init_data: string | ArrayBuffer | Record | Record[], options?: perspective_client.TableInitOptions): Promise;
/**
* Create a new client connected via WebSocket to a server implemnting the
* Perspective Protocol.
* @param module
* @param url
* @returns
*/
export declare function websocket(url: string): Promise;
declare const _default: {
table: typeof table;
websocket: typeof websocket;
get_hosted_table_names: typeof get_hosted_table_names;
on_hosted_tables_update: typeof on_hosted_tables_update;
remove_hosted_tables_update: typeof remove_hosted_tables_update;
on_error: typeof on_error;
system_info: typeof system_info;
WebSocketServer: typeof WebSocketServer;
};
export default _default;