export interface EdgeNodeSignalClientOptions { edgeNodesEnabled?: string | boolean; signalEndpoint?: string; nodeId?: string; nodeToken?: string; baseUrl?: string; ipv4?: string; ipv6?: string; pods?: string | string[]; capabilities?: string | string[]; reachability?: string; directCandidates?: string | string[]; tunnel?: string; certificate?: string; metrics?: string; metadata?: string; intervalMs?: number | string; onHeartbeatResponse?: (data: unknown) => void; metadataSupplier?: () => Record | undefined; metricsSupplier?: () => Record | undefined; tunnelSupplier?: () => Record | undefined; networkSupplier?: () => Promise<{ ipv4?: string; ipv6?: string; }> | { ipv4?: string; ipv6?: string; }; } export declare class EdgeNodeSignalClient { private readonly logger; private readonly interval?; private readonly endpoint?; private readonly baseNodeId?; private readonly baseToken?; private readonly baseUrl?; private readonly baseIpv4?; private readonly baseIpv6?; private readonly basePods?; private readonly baseCapabilities?; private readonly baseReachability?; private readonly baseDirectCandidates?; private readonly baseTunnel?; private readonly baseCertificate?; private readonly baseMetrics?; private readonly baseMetadata?; private readonly tunnelSupplier?; private readonly metricsSupplier?; private readonly metadataSupplier?; private readonly networkSupplier?; private readonly intervalMs; private readonly onHeartbeatResponse?; constructor(options: EdgeNodeSignalClientOptions); dispose(): void; private sendHeartbeat; private buildPayload; private handleHeartbeatResponse; private mergeRecords; private normalizeBoolean; private normalizeString; private normalizeInterval; private normalizePods; private normalizeStringArray; private normalizeJsonRecord; private normalizeCandidates; }