import type { MainModule } from "../../../dist/wasm/perspective-server.js"; import type { EmscriptenServer } from "./emscripten_api.ts"; export type ApiResponse = { client_id: number; data: Uint8Array; }; export interface PerspectiveServerOptions { on_poll_request?: (x: PerspectiveServer) => Promise; } export declare class PerspectivePollThread { private poll_handle?; private server; constructor(server: PerspectiveServer); private set_poll_handle; on_poll_request(): Promise; } export declare class PerspectiveServer { clients: Map Promise>; server: EmscriptenServer; module: MainModule; on_poll_request?: (x: PerspectiveServer) => Promise; constructor(module: MainModule, options?: PerspectiveServerOptions); /** * Helper function to create server emitter/receiver pairs */ make_session(callback: (buffer: Uint8Array) => Promise): PerspectiveSession; poll(): Promise; delete(): void; } export declare class PerspectiveSession { private mod; private server; private client_id; private client_map; private on_poll_request?; constructor(mod: MainModule, server: EmscriptenServer, client_id: number, client_map: Map Promise>, on_poll_request?: (() => Promise) | undefined); handle_request(view: Uint8Array): Promise; private poll; close(): void; }