/** * Stream Connection Hook * * React hook for SSE connections to stream events. * Works with Next.js client components. */ import type { FilesUploadStreamProgress, UseStreamConnectionOptions, UseStreamConnectionResult } from '@plyaz/types/core'; /** * useStreamConnection - React hook for SSE connections * * Features: * - Auto-connect on mount * - Auto-reconnect on disconnect * - Channel subscription via query params * - Message event handling * - Connection state management * * @example * ```tsx * function UploadProgress({ fileId }: { fileId: string }) { * const [progress, setProgress] = useState(0); * * // Use generic to get properly typed message.data * const { connected, error } = useStreamConnection({ * channels: [`upload:${fileId}`], * onMessage: (message) => { * if (message.event === 'progress') { * // message.data is typed as FilesUploadStreamProgress * setProgress(message.data.percentage); * } * }, * }); * * if (error) return
Connection error
; * if (!connected) return
Connecting...
; * * return
Progress: {progress}%
; * } * ``` */ export declare function useStreamConnection(options: UseStreamConnectionOptions): UseStreamConnectionResult; /** * useUploadProgress - Convenience hook for upload progress * * @example * ```tsx * function Upload({ fileId }: { fileId: string }) { * const { progress, status, connected } = useUploadProgress(fileId); * * return ( *
*
Status: {status}
* *
* ); * } * ``` */ export declare function useUploadProgress(fileId: string): { progress: number; status: FilesUploadStreamProgress['status']; loaded: number; total: number; speed?: number; error?: string; connected: boolean; }; //# sourceMappingURL=useStreamConnection.d.ts.map