interface UseChatRoomFocusOptions {
    /** The room JID that the consumer's tab/screen is currently showing. */
    roomJID: string | null | undefined;
    /**
     * Whether the chat tab/screen is currently focused. In tab-based
     * navigators where `<ChatRoom>` never unmounts, the SDK can't tell
     * "user is looking at this tab" from "user is on a different tab"
     * — pass this from `useFocusEffect` (React Navigation) or a similar
     * focus signal so the unread counter clears on focus and starts
     * counting again on blur.
     */
    isFocused: boolean;
}
/**
 * Public hook for consumers embedding `<ChatRoom>` inside a tab-based
 * navigator. Mirrors the mount/unmount unread-tracking that ChatRoom
 * does internally — but driven by an explicit focus signal so the
 * unread counter behaves correctly when the chat tab is not focused
 * but the component is still mounted.
 *
 * Without this hook, `useUnread()` will always return 0 for the chat
 * room because the SDK assumes "mounted == active". With this hook,
 * focus marks the room visible (clearing the badge) and blur stamps
 * `lastViewedTimestamp = Date.now()` so future messages count as unread.
 *
 * Usage with React Navigation:
 *
 * ```tsx
 * import { useIsFocused } from '@react-navigation/native';
 *
 * function ChatTab() {
 *   const isFocused = useIsFocused();
 *   useChatRoomFocus({ roomJID: 'general@conference.host', isFocused });
 *   return <Chat config={...} />;
 * }
 * ```
 *
 * Bug #18-adjacent / unread-tracking bug from sdk-bug-tracker.md.
 */
export declare const useChatRoomFocus: ({ roomJID, isFocused, }: UseChatRoomFocusOptions) => void;
export default useChatRoomFocus;
//# sourceMappingURL=useChatRoomFocus.d.ts.map