/**
 * @license
 * Copyright 2025 Vybestack LLC
 * SPDX-License-Identifier: Apache-2.0
 */
import React from 'react';
import type { IdeIntegrationNudgeResult } from '../IdeIntegrationNudge.js';
import type { HistoryItem } from '../types.js';
import type { FolderTrustChoice } from '../components/FolderTrustDialog.js';
import type { Key } from '../hooks/useKeypress.js';
import type { AuthType, EditorType } from '@vybestack/llxprt-code-core';
import type { SettingScope } from '../../config/settings.js';
/**
 * UI Actions shape for the AppContainer architecture.
 * This consolidates all UI actions/callbacks that were previously
 * scattered across the monolithic App.tsx component.
 */
export interface UIActions {
    addItem: (item: Omit<HistoryItem, 'id'>, timestamp: number) => number;
    clearItems: () => void;
    loadHistory: (newHistory: HistoryItem[]) => void;
    refreshStatic: () => void;
    handleUserInputSubmit: (value: string) => void;
    handleClearScreen: () => void;
    openThemeDialog: () => void;
    handleThemeSelect: (themeName: string | undefined, scope: SettingScope) => void;
    handleThemeHighlight: (themeName: string | undefined) => void;
    openSettingsDialog: () => void;
    closeSettingsDialog: () => void;
    handleSettingsRestart: () => void;
    openAuthDialog: () => void;
    handleAuthSelect: (authType: AuthType | undefined, scope: SettingScope) => Promise<void>;
    cancelAuthentication: () => void;
    handleAuthTimeout: () => void;
    openEditorDialog: () => void;
    handleEditorSelect: (editorType: EditorType | undefined, scope: SettingScope) => void;
    exitEditorDialog: () => void;
    openProviderDialog: () => void;
    handleProviderSelect: (provider: string) => Promise<void>;
    exitProviderDialog: () => void;
    openProviderModelDialog: () => Promise<void>;
    handleProviderModelChange: (model: string) => void;
    exitProviderModelDialog: () => void;
    openLoadProfileDialog: () => void;
    handleProfileSelect: (profile: string) => void;
    exitLoadProfileDialog: () => void;
    openToolsDialog: (action: 'enable' | 'disable') => void;
    handleToolsSelect: (tool: string) => void;
    exitToolsDialog: () => void;
    handleFolderTrustSelect: (choice: FolderTrustChoice) => void;
    openPermissionsDialog: () => void;
    closePermissionsDialog: () => void;
    openLoggingDialog: (data?: {
        entries: unknown[];
    }) => void;
    closeLoggingDialog: () => void;
    onWorkspaceMigrationDialogOpen: () => void;
    onWorkspaceMigrationDialogClose: () => void;
    openPrivacyNotice: () => void;
    handlePrivacyNoticeExit: () => void;
    handleOAuthCodeDialogClose: () => void;
    handleOAuthCodeSubmit: (code: string) => Promise<void>;
    handleConfirmationSelect: (value: boolean) => void;
    handleIdePromptComplete: (result: IdeIntegrationNudgeResult) => void;
    vimHandleInput: (key: Key) => boolean;
    toggleVimEnabled: () => void;
    handleSlashCommand: (command: string) => void;
    performMemoryRefresh: () => Promise<void>;
    setShowErrorDetails: (show: boolean) => void;
    setShowToolDescriptions: (show: boolean) => void;
    setConstrainHeight: (constrain: boolean) => void;
    setShellModeActive: (active: boolean) => void;
    handleEscapePromptChange: (show: boolean) => void;
    cancelOngoingRequest?: () => void;
}
declare const UIActionsContext: React.Context<UIActions | undefined>;
export declare function UIActionsProvider({ children, value, }: {
    children: React.ReactNode;
    value: UIActions;
}): import("react/jsx-runtime").JSX.Element;
export declare function useUIActions(): UIActions;
export { UIActionsContext };
