import "../_dnt.polyfills.js"; import { Deferred } from "../deps/std/async.js"; import { RpcCallMessage, RpcIngressMessage, RpcSubscriptionHandler } from "./rpc_messages.js"; export declare abstract class Connection { #private; nextId: number; references: number; signal: AbortSignal; static bind(this: new (discovery: D) => Connection, discovery: D): Connect; static connect(this: new (discovery: D) => Connection, discovery: D, signal: AbortSignal): Connection; ref(signal: AbortSignal): void; abstract ready(): Promise; abstract send(id: number, method: string, params: unknown): void; protected abstract close(): void; call(method: string, params: unknown[]): Promise; callResultPendings: Record>; subscriptionHandlers: Record; subscriptionPendingInits: Record void>; subscription(subscribe: string, unsubscribe: string, params: unknown[], handler: RpcSubscriptionHandler, signal: AbortSignal): Promise; handle(message: RpcIngressMessage): void; } export type Connect = (signal: AbortSignal) => Connection;