/** * Real H3-DAC Client * * Connects to actual H3-DAC relay cluster via QUIC/WebTransport * Handles signature verification, publish/subscribe, order guarantees * * Features: * - QUIC + WebTransport support * - Ed25519 signature verification * - Automatic reconnect with backoff * - Order guarantees via DAG ordering * - QoS support (at-least-once, exactly-once) */ import { EventEmitter } from 'events'; export interface H3DACConfig { relayUrl: string; publicKey: string; privateKey: string; qos: 'at-most-once' | 'at-least-once' | 'exactly-once'; reconnectBackoff: number; reconnectMaxRetries: number; timeout: number; } export interface H3DACMessage { type: string; id: string; payload: any; timestamp: number; sequence?: number; signature?: string; } export interface H3DACPublishOptions { ttl?: number; tags?: string[]; requireOrder?: boolean; } export declare class H3DACClient extends EventEmitter { private config; private conn; private reconnectCount; private messageQueue; private subscriptions; constructor(config: H3DACConfig); /** * Connect to H3-DAC relay */ connect(): Promise; /** * Publish intent to H3-DAC */ publishIntent(intentType: string, payload: any, options?: H3DACPublishOptions): Promise<{ messageId: string; sequence?: number; }>; /** * Subscribe to intent topic */ subscribe(topic: string, callback: (msg: H3DACMessage) => void): () => void; /** * Wait for DAG ordering confirmation */ private waitForSequence; /** * Handle incoming datagram (signature verification) */ private handleDatagram; /** * Handle stream-based messages (for larger payloads) */ private handleStream; /** * Sign message with private key (Ed25519) */ private signMessage; /** * Verify message signature */ private verifyMessage; /** * Create QUIC or WebTransport connection */ private createConnection; /** * Create native QUIC connection (requires quinn or similar) */ private createQUICConnection; /** * Create WebTransport connection (browser/modern Node) */ private createWebTransportConnection; /** * Handle disconnection with backoff */ private handleDisconnect; /** * Handle connection errors */ private handleConnectionError; /** * Disconnect gracefully */ disconnect(): Promise; /** * Generate unique message ID */ private generateId; /** * Get client status */ getStatus(): { connected: boolean; reconnectAttempts: number; pendingMessages: number; subscriptions: string[]; }; } export declare function createH3DACClient(config: H3DACConfig): H3DACClient; export declare function getH3DACClient(): H3DACClient | null; export declare function initH3DAC(config: H3DACConfig): Promise; //# sourceMappingURL=real-client.d.ts.map