import type { IConversation } from "./conversations";
import type { IAIMessage } from "./messages";
import type { ISelectionContext } from "./requests";
import type { IToolCall, IToolResult } from "./tools";
import type { AIAssistantView } from "./types";
/**
 * Events fired by AI Assistant Pro plugin
 */
export interface IAIAssistantProEvents {
    /** Fired when assistant panel is opened */
    'open.ai-assistant-pro': (conversation: IConversation | null) => void;
    /** Fired when assistant panel is closed */
    'close.ai-assistant-pro': () => void;
    /** Fired when new conversation is started */
    'newConversation.ai-assistant-pro': () => void;
    /** Fired when view changes */
    'viewChanged.ai-assistant-pro': (view: AIAssistantView) => void;
    /** Fired when a message is sent */
    'messageSent.ai-assistant-pro': (message: IAIMessage) => void;
    /** Fired when a response is received */
    'messageReceived.ai-assistant-pro': (message: IAIMessage) => void;
    /** Fired when a tool call is requested */
    'toolCallRequested.ai-assistant-pro': (toolCall: IToolCall) => void;
    /** Fired when a tool call is approved */
    'toolCallApproved.ai-assistant-pro': (toolCall: IToolCall) => void;
    /** Fired when a tool call is denied */
    'toolCallDenied.ai-assistant-pro': (toolCall: IToolCall) => void;
    /** Fired when a tool call is executed */
    'toolCallExecuted.ai-assistant-pro': (toolCall: IToolCall, result: IToolResult) => void;
    /** Fired when an error occurs */
    'error.ai-assistant-pro': (error: Error) => void;
    /** Fired when a conversation is created */
    'conversationCreated.ai-assistant-pro': (conversation: IConversation) => void;
    /** Fired when a conversation is deleted */
    'conversationDeleted.ai-assistant-pro': (conversationId: string) => void;
    /** Fired when conversation is switched */
    'conversationSwitched.ai-assistant-pro': (conversation: IConversation) => void;
    /** Fired when context is added */
    'contextAdded.ai-assistant-pro': (context: ISelectionContext) => void;
    /** Fired when context is removed */
    'contextRemoved.ai-assistant-pro': (index: number) => void;
    /** Fired when copy message action is triggered */
    'copyMessage.ai-assistant-pro': (messageId: string) => void;
    /** Fired when restart from message action is triggered */
    'restartFromMessage.ai-assistant-pro': (messageId: string) => void;
    /** Fired when edit message action is triggered */
    'editMessage.ai-assistant-pro': (messageId: string) => void;
    /** Fired when delete message action is triggered */
    'deleteMessage.ai-assistant-pro': (messageId: string) => void;
}
