declare const logoutService: {
    /**
     * Tear down the active chat session end-to-end:
     *  1. Fire UI-side events (notifications, push, redux slices).
     *  2. The redux dispatch of `chat/logout` triggers
     *     `logoutMiddleware`, which emits `ethora-xmpp-logout` on
     *     `DeviceEventEmitter`. `XmppProvider` listens for that event,
     *     disconnects the XMPP transport, clears the global client
     *     singleton, and awaits `clearPersistedState()` to wipe the
     *     two persisted slice keys.
     *  3. We additionally clear:
     *     - the 60s in-memory REST `/chats/my` cache (stale rooms
     *       leak across user-switch within the cache window otherwise),
     *     - leftover AsyncStorage keys the slices don't touch
     *       (pending QR join target, push subscription set),
     *     - the persistence keys directly (belt-and-suspenders against
     *       the persistence middleware's 200ms debounce silently losing
     *       the post-logout write if the app is killed mid-flush).
     *
     * Returns a Promise so callers can sequence a navigation / restart
     * AFTER all the disk work has actually landed.
     */
    performLogout: () => Promise<void>;
};
export declare const useLogout: () => () => void;
export { logoutService };
//# sourceMappingURL=useLogout.d.ts.map