import { type Ref } from 'vue'; /** * Subscribe to a WebSocket event. * - Without callback: returns reactive ref with latest value. * - With callback: calls your handler on each event. * * @example * // Reactive state * const order = useSocketEvent('order.created'); * * @example * // Custom callback * useSocketEvent('order.created', (order) => { * playSound('new-order'); * analytics.track('order_received', order); * }); */ export declare function useSocketEvent(event: string, callback?: (data: T, raw?: unknown) => void): Ref; /** * Accumulate WebSocket events. * - Without callback: returns reactive array. * - With callback: calls your handler — manage your own state. * * @example * // Default accumulation * const messages = useSocketStream('chat.message'); * * @example * // Custom — keep last 50 * const messages = ref([]); * useSocketStream('chat.message', (msg) => { * messages.value = [msg, ...messages.value].slice(0, 50); * }); * * @example * // Custom — filter by type * const errors = ref([]); * useSocketStream('log.entry', (entry) => { * if (entry.level === 'error') errors.value = [...errors.value, entry]; * }); */ export declare function useSocketStream(event: string, callback?: (data: T, raw?: unknown) => void): Ref; /** * Fire-and-forget event handler — no state, no ref. * * @example * useSocketCallback('notification', (n) => { * showToast(n.title); * }); */ export declare function useSocketCallback(event: string, callback: (data: T, raw?: unknown) => void): void;