import { type ChangeEvent, type FormEvent, type ReactNode } from 'react';
import { type AssistantSession, type InitialFeatureFlags, type SelectedAssistantMessage, type ToolActionEvent } from '../types';
export interface CanvasViewOptions {
    type: string;
    id: string;
    title?: string;
    description?: string;
    images?: any[];
    dataSourceId?: string;
    data?: Record<string, any> | string;
    mode?: 'add' | 'edit' | 'view';
    recordId?: string;
    versionId?: string;
    contentJson?: Record<string, any> | null;
    loaded?: boolean;
    commands?: any[];
}
export interface ChatPanelProps {
    messages: any[];
    isLoading: boolean;
    input: string;
    onInputChange: (e: ChangeEvent<HTMLInputElement | HTMLTextAreaElement>) => void;
    onSendMessage: (e?: FormEvent, options?: any) => void;
    onStop: () => void;
    logo?: string;
    userPhoto?: string;
    userDisplayName?: string;
    description?: string;
    title?: string;
    welcomeMessage?: string;
    isLoadingAgent?: boolean;
    placeholder?: string;
    footerText?: string;
    supportFiles?: boolean;
    supportWebSearch?: boolean;
    supportDocumentSearch?: boolean;
    supportDeepResearch?: boolean;
    supportThinking?: boolean;
    supportWorkCanvas?: boolean;
    supportMultiModels?: boolean;
    deploymentId?: string;
    tenantAiAgentId?: string;
    enableMicrophone?: boolean;
    enableVoice?: boolean;
    isRecording?: boolean;
    recognition?: any;
    onMicrophoneClick?: () => void;
    onToolAction?: (event: ToolActionEvent) => void;
    openCanvasView?: (options: CanvasViewOptions) => void;
    onSendSpreadsheetCommands?: (commands: any[]) => void;
    onEditPrompt?: (messageIndex: number, newText: string) => void;
    renderThreadHeader?: () => ReactNode;
    messagesClassName?: string;
    compactToolbar?: boolean;
    showWelcome?: boolean;
    recentSessions?: AssistantSession[];
    onSessionClick?: (session: AssistantSession) => void;
    threadId?: string;
    initialModelId?: string;
    initialFeatures?: InitialFeatureFlags;
    initialFiles?: File[];
    onManageMemories?: () => void;
    /**
     * Combined list of subagents reachable from the active orchestrator —
     * direct children (`deployment.agent.agents`) plus connected subagents
     * (`deployment.agent.connectedAgents`). Each entry should expose `id` (or
     * `agentId`), `agentName`, `avatar`, `description`, and optionally `steps`.
     * Used by the SubagentTool to render avatars / names / step templates for
     * `call*Agent` tool calls.
     */
    subagents?: Array<Record<string, any>>;
    /**
     * Tool metadata for the active agent (and its direct sub-agents). Used by
     * the renderer to resolve `outputRenderType` / `outputRenderTemplate` for
     * an in-flight tool call (e.g. switch to AdaptiveCard rendering).
     */
    agentTools?: Array<Record<string, any>>;
    /** Host app currently in context (id + display name + Docyrus icon string). Renders a dismissable chip above the input. */
    appContext?: {
        id: string;
        name?: string;
        icon?: string;
    } | null;
    /** Called when the user dismisses the app context chip. */
    onClearAppContext?: () => void;
    /** Fired when the agent calls the `forwardToAgentById` tool and the user confirms. */
    onForwardToAgent?: (options: {
        agentId: string;
        prompt?: string;
    }) => void;
    /** Latest chat error to surface above the input as a dismissable bubble. */
    chatError?: string | null;
    /** Called when the user dismisses the error bubble. */
    onDismissChatError?: () => void;
    /** Hide the prompt input until the agent's consent terms are accepted. */
    consentRequired?: boolean;
    /** When true, raw tool-call debug messages are shown in the thread. */
    debugMode?: boolean;
    /** When true, assistant messages render a checkbox and a Send/Cancel footer. */
    enableMessageSelection?: boolean;
    /** Called with the picked assistant messages when the user presses Send. */
    onSendSelectedMessages?: (messages: SelectedAssistantMessage[]) => void | Promise<void>;
    /** Called when the user presses Cancel in the selection footer. */
    onCancelSelection?: () => void;
}
export declare function ChatPanel({ messages, isLoading, input, onInputChange, onSendMessage, onStop, logo, userPhoto, userDisplayName, description, title, welcomeMessage, isLoadingAgent, placeholder, consentRequired, footerText, supportFiles, supportWebSearch, supportDocumentSearch, supportDeepResearch, supportThinking, supportWorkCanvas, supportMultiModels, deploymentId, tenantAiAgentId, enableMicrophone, enableVoice, isRecording, recognition, onMicrophoneClick, onToolAction, openCanvasView, onSendSpreadsheetCommands: _onSendSpreadsheetCommands, onEditPrompt, renderThreadHeader, messagesClassName, compactToolbar, showWelcome, recentSessions, onSessionClick, threadId, initialModelId, initialFeatures, initialFiles, subagents, agentTools, onManageMemories, appContext, onClearAppContext, onForwardToAgent, chatError, onDismissChatError, debugMode, enableMessageSelection, onSendSelectedMessages, onCancelSelection }: ChatPanelProps): import("react/jsx-runtime").JSX.Element;
