import { DocumentSymbol, SymbolKind } from '@opensumi/ide-monaco'; import { LLMContextService } from '../../../common/llm-context'; import type { LabelService } from '@opensumi/ide-core-browser'; import type { IWorkspaceService } from '@opensumi/ide-workspace'; export interface MentionItem { id: string; type: string; text: string; value?: string; description?: string; contextId?: string; symbol?: DocumentSymbol; icon?: string; kind?: SymbolKind; getHighestLevelItems?: () => MentionItem[]; getItems?: (searchText: string) => Promise; } export interface SecondLevelMenuConfig { getDefaultItems: () => MentionItem[]; getHighestLevelItems: () => MentionItem[]; } export interface MentionPosition { top: number; left: number; } export interface MentionState { active: boolean; startPos: number | null; filter: string; position: MentionPosition; activeIndex: number; level: number; parentType: string | null; secondLevelFilter: string; inlineSearchActive: boolean; inlineSearchStartPos: number | null; loading: boolean; } interface ModelOption { label: string; value: string; } export declare enum FooterButtonPosition { LEFT = "left", RIGHT = "right" } export declare enum MentionType { FILE = "file", FOLDER = "folder", CODE = "code" } interface FooterButton { id: string; icon?: string; iconClass?: string; title: string; onClick?: () => void; position: FooterButtonPosition; } export interface FooterConfig { modelOptions?: ModelOption[]; defaultModel?: string; buttons?: FooterButton[]; showModelSelector?: boolean; disableModelSelector?: boolean; } export interface MentionInputProps { mentionItems?: MentionItem[]; onSend?: (content: string, config?: { model: string; [key: string]: any; }) => void; onStop?: () => void; placeholder?: string; loading?: boolean; onSelectionChange?: (value: string) => void; onImageUpload?: (files: File[]) => Promise; footerConfig?: FooterConfig; mentionKeyword?: string; labelService?: LabelService; workspaceService?: IWorkspaceService; contextService?: LLMContextService; } export declare const MENTION_KEYWORD = "@"; export {}; //# sourceMappingURL=types.d.ts.map