/**
 * 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;
export default useUIState;
//# sourceMappingURL=useUIState.d.ts.map