import Channel from "./Channel"; import IntervalTimer from "./IntervalTimer"; import KeyPair from "./KeyPair"; import MemberSet from "./MemberSet"; import Message from "./Message"; import Peer from "./Peer"; import SignedMessage from "./SignedMessage"; import Subscription from "./Subscription"; export default class Node { verbose: boolean; peers: { [publicKey: string]: Peer; }; pendingByURL: { [url: string]: Peer; }; pendingByPublicKey: { [publicKey: string]: Peer; }; nextMessageCallbacks: ((sm: SignedMessage) => void)[]; everyMessageCallbacks: ((sm: SignedMessage) => void)[]; destroyed: boolean; channelMembers: { [channel: string]: MemberSet; }; joined: { [channel: string]: Date; }; subscriptions: { [channel: string]: Subscription; }; channels: { [name: string]: Channel; }; keyPair: KeyPair; timer: IntervalTimer; createdAt: Date; constructor(options?: { network?: string; keyPair?: KeyPair; bootstrap?: string[]; verbose?: boolean; }); log(...args: any[]): void; statusLine(): string; statusLines(): Promise; handleTick(): void; peerKeys(): string[]; numPeers(): number; bootstrap(): void; onNextMessage(callback: (sm: SignedMessage) => void): void; onEveryMessage(callback: (sm: SignedMessage) => void): void; waitForMessage(): Promise; waitUntil(f: () => boolean): Promise; getChannelMembers(channel: string): string[]; getChannelPeers(channel: string): Peer[]; sendToChannel(channel: string, message: Message): void; indexPeer(peer: Peer): boolean; connectToPeer(publicKey: string, intermediary: Peer, initiator: boolean, nonce: string): void; connectToServer(url: string): void; handlePing(peer: Peer, sm: SignedMessage): void; handlePong(peer: Peer, sm: SignedMessage): void; handleFindNode(peer: Peer, sm: SignedMessage): void; handleNeighbors(peer: Peer, sm: SignedMessage): void; handleSignal(peer: Peer, sm: SignedMessage): void; handleForwardedSignal(intermediary: Peer, nested: SignedMessage): void; handleForward(intermediary: Peer, sm: SignedMessage): Promise; handleSerializedForward(intermediary: Peer, serialized: string): Promise; handleJoin(peer: Peer, sm: SignedMessage): void; handlePublish(sm: SignedMessage): void; forwardToChannel(channel: string, sm: SignedMessage): void; join(channel: string): void; handleSignedMessage(peer: Peer, sm: SignedMessage): Promise; handlePeerClose(peer: Peer): void; addPeer(peer: Peer): void; getPeers(): Peer[]; getPendingPeers(): Peer[]; publish(channel: string, data: any): void; subscribe(channel: string, callback: (sender: string, data: any) => void): void; channel(name: string, prefix?: string): Channel; getChannel(name: string): Channel | null; destroy(): void; }