/**
 * UIContext
 *
 * Provides cross-cutting UI state to all components without prop drilling.
 * Used for values that almost every view/component needs.
 *
 * @since v1.52.0
 */
import { type ReactNode } from 'react';
/**
 * UI context value - cross-cutting concerns shared by all views
 */
export interface UIContextValue {
    /** Whether keyboard input is enabled (false when dialogs are open) */
    inputEnabled: boolean;
    /** Maximum content height in lines */
    maxHeight: number;
    /** Terminal width in columns */
    terminalWidth: number;
    /** Whether debug mode is enabled */
    debugEnabled: boolean;
}
export interface UIProviderProps {
    children: ReactNode;
    value: UIContextValue;
}
/**
 * Provider component for UI context
 */
export declare function UIProvider({ children, value }: UIProviderProps): React.ReactElement;
/**
 * Hook to access UI context values
 *
 * @throws Error if used outside of UIProvider
 *
 * @example
 * ```typescript
 * function MyView() {
 *   const { inputEnabled, maxHeight, terminalWidth } = useUI();
 *   // ...
 * }
 * ```
 */
export declare function useUI(): UIContextValue;
/**
 * Hook to access UI context with fallback for components that may render outside provider
 *
 * @param fallback - Default values if outside provider
 */
export declare function useUIOptional(fallback: UIContextValue): UIContextValue;
//# sourceMappingURL=UIContext.d.ts.map