import { EventEmitter } from "eventemitter3"; import WebSocket from "isomorphic-ws"; import type { ConnectionType, ConnectionTypeEvents } from "./connection-pool"; import { type RelayInfoDocument } from "./impl/nip11"; import type { NostrEvent, OkResponse, ReqCommand } from "./nostr"; /** * Relay settings */ export interface RelaySettings { read: boolean; write: boolean; } export declare class Connection extends EventEmitter implements ConnectionType { #private; id: string; readonly address: string; Socket: WebSocket | null; PendingRaw: Array; settings: RelaySettings; info: RelayInfoDocument | undefined; ConnectTimeout: number; HasStateChange: boolean; ReconnectTimer?: ReturnType; EventsCallback: Map) => void>; AwaitingAuth: Map; Authed: boolean; constructor(addr: string, options: RelaySettings, ephemeral?: boolean); get ephemeral(): boolean; set ephemeral(v: boolean); get isOpen(): boolean; get isConnecting(): boolean; get isDown(): boolean; get ActiveRequests(): string[]; connect(awaitOpen?: boolean): Promise; close(): void; /** * Send event on this connection */ sendEvent(e: NostrEvent): void; /** * Send event on this connection and wait for OK response */ publish(e: NostrEvent, timeout?: number): Promise; /** * Using relay document to determine if this relay supports a feature */ supportsNip(n: number): boolean; /** * Send command to the relay * @param cmd The REQ to send to the server * @param cbSent Callback when sent to relay */ request(cmd: ReqCommand, cbSent?: () => void): void; closeRequest(id: string): void; get activeSubscriptions(): number; get maxSubscriptions(): number; /** * Send raw json object on wire */ sendRaw(obj: object): void; } //# sourceMappingURL=connection.d.ts.map