interface RoomLike {
    jid: string;
    lastViewedTimestamp?: number;
    unreadMessages?: number;
}
interface FlushOpts {
    activeRoomJID?: string | null;
    onlyIfNoUnread?: boolean;
}
/**
 * Merge in-memory lastViewedTimestamp values into the server-side
 * private store. Reads current state, overlays per-room updates, writes
 * back. Single round-trip so concurrent open clients don't trample
 * each other's entries.
 *
 * Called on: tab change away from chat, AppState background/inactive,
 * and (with onlyIfNoUnread=true) logout. ChatRoom's own unmount path
 * still uses actionSetTimestampToPrivateStore for the single-room case.
 */
export declare function flushLastViewedToPrivateStore(client: any, rooms: Record<string, RoomLike> | null | undefined, opts?: FlushOpts): Promise<boolean>;
export {};
//# sourceMappingURL=flushLastViewedToPrivateStore.d.ts.map