/**
 * @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 { EditorType } from '@vybestack/llxprt-code-core';
import type { SettingScope } from '../../config/settings.js';
import type { SubagentView } from '../components/SubagentManagement/types.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: (method: string | undefined, scope: SettingScope) => Promise<void>;
    handleAuthTimeout: () => void;
    openEditorDialog: () => void;
    handleEditorSelect: (editorType: EditorType | undefined, scope: SettingScope) => void;
    exitEditorDialog: () => void;
    openProviderDialog: () => void;
    handleProviderSelect: (provider: string) => Promise<void>;
    exitProviderDialog: () => void;
    openLoadProfileDialog: () => void;
    handleProfileSelect: (profile: string) => void;
    exitLoadProfileDialog: () => void;
    openCreateProfileDialog: () => void;
    exitCreateProfileDialog: () => void;
    openProfileListDialog: () => void;
    closeProfileListDialog: () => void;
    viewProfileDetail: (profileName: string, openedDirectly?: boolean) => void;
    closeProfileDetailDialog: () => void;
    loadProfileFromDetail: (profileName: string) => void;
    deleteProfileFromDetail: (profileName: string) => void;
    setProfileAsDefault: (profileName: string) => void;
    openProfileEditor: (profileName: string, openedDirectly?: boolean) => void;
    closeProfileEditor: () => void;
    saveProfileFromEditor: (profileName: string, updatedProfile: unknown) => Promise<void>;
    openToolsDialog: (action: 'enable' | 'disable') => void;
    handleToolsSelect: (tool: string) => void;
    exitToolsDialog: () => void;
    handleFolderTrustSelect: (choice: FolderTrustChoice) => void;
    welcomeActions: {
        startSetup: () => void;
        selectProvider: (providerId: string) => void;
        selectModel: (modelId: string) => void;
        selectAuthMethod: (method: 'oauth' | 'api_key') => void;
        onAuthComplete: () => void;
        onAuthError: (error: string) => void;
        skipSetup: () => void;
        goBack: () => void;
        saveProfile: (name: string) => Promise<void>;
        dismiss: () => void;
        resetAndReopen: () => void;
    };
    triggerWelcomeAuth: (provider: string, method: 'oauth' | 'api_key', apiKey?: string) => Promise<void>;
    openPermissionsDialog: () => void;
    closePermissionsDialog: () => void;
    openLoggingDialog: (data?: {
        entries: unknown[];
    }) => void;
    closeLoggingDialog: () => void;
    openSubagentDialog: (initialView?: SubagentView, initialName?: string) => void;
    closeSubagentDialog: () => void;
    openModelsDialog: (data?: {
        initialSearch?: string;
        initialFilters?: {
            tools?: boolean;
            vision?: boolean;
            reasoning?: boolean;
            audio?: boolean;
        };
        includeDeprecated?: boolean;
    }) => void;
    closeModelsDialog: () => void;
    /**
     * Session browser dialog
     * @plan PLAN-20260214-SESSIONBROWSER.P21
     */
    openSessionBrowserDialog: () => void;
    closeSessionBrowserDialog: () => 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;
    setQueueErrorMessage: (message: string | null) => 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 };
