import type { Dispatch, MutableRefObject, SetStateAction } from "react"; import type { Streams, StreamSources } from "../types/SFU.js"; import type { RoomCoordinator } from "../../types.js"; export interface CleanupRefs { peerConnectionRef: MutableRefObject; sfuWebSocketRef: MutableRefObject; registeredTracksRef: MutableRefObject; reconnectAttemptRef: MutableRefObject; connectionTimeoutRef: MutableRefObject; isDisconnectingRef: MutableRefObject; isConnectingRef: MutableRefObject; previousRemoteStreamsRef: MutableRefObject>; announcedStreamIdRef: MutableRefObject; } export interface CleanupDeps { room: RoomCoordinator | null; setStreamSources: Dispatch>; setStreams: Dispatch>; } export declare function performSfuCleanup(refs: CleanupRefs, deps: CleanupDeps, skipServerUpdate?: boolean): Promise; /** * Synchronous cleanup for component unmount — does not wait for async operations * or notify the server. */ export declare function performUnmountCleanup(refs: Pick): void;