import { SseData } from '../types/entity'; import type { ConnectionClosedPayload } from '../types/entity'; import { ConnectionProtocol } from '../types/enum'; interface ConnectionClientOptions { url: string; token: string; protocol: ConnectionProtocol; retryInterval?: number; connectTimeout?: number; maxRetries?: number; debug?: boolean; onMessage?: (response: SseData) => void; onReconnectSuccess?: () => void; onConnectionClosed?: (payload: ConnectionClosedPayload) => void; onMaxRetriesReached?: () => void; onConnectionChange?: (isConnected: boolean) => void; } /** * 通用连接客户端接口 */ export interface IConnectionClient { connect(): Promise; close(): void; unsubscribe(): void; subscribe(type: string, handler: Function): void; isConnected(): boolean; send(data: string | object | ArrayBuffer | Blob | ArrayBufferView): boolean; } /** * 连接客户端工厂类 * 根据协议类型创建相应的客户端实例 */ export declare class ConnectionClientFactory { /** * 创建连接客户端实例 * @param options 连接选项 * @returns 连接客户端实例 */ static createClient(options: ConnectionClientOptions): IConnectionClient; } export default ConnectionClientFactory;