/** Boot steps that can fail before the first sync. */ export type ChatBootFailedStep = "engine" | "connect"; /** A fresh device pulls everything ("reinstall"); a kept local copy only catches up ("incremental"). */ export type ChatBootSyncKind = "reinstall" | "incremental"; /** Progress a fresh-device sync reports once groups and conversations are stored, before any message. */ export declare const CONVERSATIONS_SYNCED_PROGRESS = 10; interface BootStore { /** User the current boot belongs to; logging in as someone else starts over. */ userID: string | null; hasConnected: boolean; /** Set by the first OnSyncServerFinish/Failed after login, or when we stop waiting on a stalled sync. */ isFirstSyncDone: boolean; /** The first sync was released by the stall timer, not finished; a real finish clears it. */ isSyncStalled: boolean; /** A conversation list load finished after the first sync, so an empty list really is empty. */ isListSettled: boolean; failedStep: ChatBootFailedStep | null; /** 0-100 from OnSyncServerProgress (only sent while a fresh device syncs). */ syncProgress: number; /** Kind of the first sync after login while it runs; cleared once it finishes or fails. */ firstSyncKind: ChatBootSyncKind | null; /** The desk's first page of conversations has its rows and previews. */ isFirstScreenReady: boolean; startBoot: (userID: string) => void; reset: () => void; markConnecting: () => void; markConnected: () => void; markFailed: (step: ChatBootFailedStep) => void; markSyncStarted: (isReinstall: boolean) => void; setSyncProgress: (progress: number) => void; markFirstSyncDone: () => void; markSyncStalled: () => void; markListSettled: () => void; markFirstScreenReady: () => void; } type BootSyncState = Pick; /** A fresh device's first sync has stored the conversations and is still pulling each one's latest message. */ export declare const selectIsSyncingInBackground: (state: BootSyncState) => boolean; /** The local DB holds the conversations: the first sync ended, only catches up, or runs in the background. */ export declare const selectHasConversations: (state: BootSyncState) => boolean; /** Progress of the chat engine boot (WASM, login, connect, first sync) shared by the loading screens. */ declare const useBootStore: import("zustand").UseBoundStore>; export default useBootStore; //# sourceMappingURL=boot.d.ts.map