import { UUID } from './UUID'; import { Packet } from './Packet'; import type { MessageBase } from './MessageBase'; import { Message } from '../enums/Message'; import type { Subscription } from 'rxjs'; import { FilterResponse } from '../enums/FilterResponse'; import { PacketFlags } from '../enums/PacketFlags'; import type { AssetType } from '../enums/AssetType'; import type * as Long from 'long'; export declare class Circuit { secureSessionID: UUID; sessionID: UUID; circuitCode: number; udpBlacklist: string[]; timestamp: number; port: number; ipAddress: string; private client; private sequenceNumber; private readonly awaitingAck; private readonly receivedPackets; private active; private readonly onPacketReceived; private readonly onAckReceived; constructor(); subscribeToMessages(ids: number[], callback: (packet: Packet) => Promise | void): Subscription; sendMessage(message: MessageBase, flags: PacketFlags): number; XferFileUp(xferID: Long, data: Buffer): Promise; XferFileDown(fileName: string, deleteOnCompletion: boolean, useBigPackets: boolean, vFileID: UUID, vFileType: AssetType, fromCache: boolean): Promise; waitForAck(ack: number, timeout: number): Promise; init(): void; shutdown(): void; sendAndWaitForMessage(message: MessageBase, flags: PacketFlags, id: Message, timeout: number, messageFilter?: (message: T) => FilterResponse): Promise; waitForMessage(id: Message, timeout: number, messageFilter?: (message: T) => FilterResponse): Promise; getOldestUnacked(): number; private sendXferPacket; private resend; private sendPacket; private ackReceived; private sendAck; private expireReceivedPacket; private receivedPacket; }