/** * useUIState Hook * * Derives the current UI state from component state. * Used for input validation and state-aware behavior. */ import { type StateContext, type TabId } from '../state/index.js'; /** * Options for the useUIState hook */ export interface UseUIStateOptions { /** Whether help overlay is shown */ showHelp: boolean; /** Whether config view is shown */ showConfig: boolean; /** Whether command palette is shown */ showCommandPalette: boolean; /** Whether confirmation dialog is shown */ showConfirmDialog: boolean; /** Current workflow type */ workflowType: 'sync' | 'backup' | 'download' | 'migrate' | null; /** Whether batch menu is shown */ showBatchMenu: boolean; /** Whether setup wizard is shown */ showSetup: boolean; /** Whether account view is shown */ showAccountView: boolean; /** Current download step (v1.50.5: extended with config-prompt and destination) */ downloadStep: 'config-prompt' | 'type' | 'version' | 'destination' | 'progress'; /** Sync operation loading state */ syncLoading: boolean; /** Backup operation loading state */ backupLoading: boolean; /** Download operation loading state */ downloadLoading: boolean; /** Updates check loading state */ updatesLoading: boolean; /** Servers scan loading state */ serversLoading: boolean; /** Plugins loading state */ pluginsLoading: boolean; /** Logs loading state */ logsLoading: boolean; /** Active tab ID */ activeTab: TabId; /** Network online status */ online: boolean; /** Debug mode enabled */ debugEnabled: boolean; /** Whether current operation can be cancelled */ canCancel?: boolean; /** Whether first launch prompt is shown */ showFirstLaunchPrompt?: boolean; /** Whether login dialog is shown */ showLoginDialog?: boolean; } /** * Return type for useUIState hook */ export interface UseUIStateResult { /** Current UI state context */ context: StateContext; /** Whether input is currently enabled (not blocked by progress/setup) */ inputEnabled: boolean; /** Whether any workflow is loading */ workflowLoading: boolean; /** Whether any data is loading */ dataLoading: boolean; } /** * Hook that derives the current UI state from component state * * @param options - Current component state values * @returns Derived state context and computed flags * * @example * const { context, inputEnabled } = useUIState({ * showHelp, * showConfig, * showCommandPalette, * // ... other state values * }); * * // Use context.state for input validation * if (context.state === 'idle') { * // Handle normal input * } */ export declare function useUIState(options: UseUIStateOptions): UseUIStateResult; //# sourceMappingURL=useUIState.d.ts.map