import { AIVariableContext } from '@theia/ai-core'; import { AIVariableDropResult, FrontendVariableContribution, FrontendVariableService } from '@theia/ai-core/lib/browser'; import { ILogger, QuickInputService, QuickPickItemOrSeparator, URI } from '@theia/core'; import * as monaco from '@theia/monaco-editor-core'; import { FileQuickPickItem, QuickFileSelectService } from '@theia/file-search/lib/browser/quick-file-select-service'; import { WorkspaceService } from '@theia/workspace/lib/browser'; import { FileService } from '@theia/filesystem/lib/browser/file-service'; import { ApplicationShell, LabelProvider } from '@theia/core/lib/browser'; import { NavigationLocationService } from '@theia/editor/lib/browser/navigation/navigation-location-service'; import { QuickPickItem } from '@theia/core/lib/common/quick-pick-service'; interface ClipboardQuickPickItem extends QuickPickItem { isClipboardOption: true; } type ImagePickerItem = FileQuickPickItem | ClipboardQuickPickItem; export declare class FileChatVariableContribution implements FrontendVariableContribution { protected readonly fileService: FileService; protected readonly wsService: WorkspaceService; protected readonly quickInputService: QuickInputService; protected readonly quickFileSelectService: QuickFileSelectService; protected readonly logger: ILogger; protected readonly shell: ApplicationShell; protected readonly labelProvider: LabelProvider; protected readonly navigationLocationService: NavigationLocationService; registerVariables(service: FrontendVariableService): void; protected triggerArgumentPicker(): Promise; protected imageArgumentPicker(): Promise; /** * Build the complete list of items for the image picker. * Includes recently opened images, file search results (when filtering), and clipboard option. */ protected buildImagePickerItems(filter: string): Promise<(ImagePickerItem | QuickPickItemOrSeparator)[]>; /** * Get quick pick items for recently opened image files. */ protected getRecentlyOpenedImagePicks(filter: string, collectedUris: Set): FileQuickPickItem[]; /** * Search for image files matching the filter. */ protected getImageSearchResults(filter: string, collectedUris: Set): Promise; /** * Convert a URI to a FileQuickPickItem. */ protected toFileQuickPickItem(uri: URI): FileQuickPickItem; /** * Read an image from the clipboard and return it as an ImageContextVariable argument string. */ protected readImageFromClipboard(): Promise; /** * Convert a Blob to base64 string. */ protected blobToBase64(blob: Blob): Promise; protected provideArgumentCompletionItems(model: monaco.editor.ITextModel, position: monaco.Position, matchString?: string): Promise; /** * Get icon classes for a file URI, matching the format used by QuickFileSelectService. */ protected getFileIconClasses(uri: URI): string[]; /** * Checks if a file is an image based on its extension. */ protected isImageFile(filePath: string): boolean; protected handleDrop(event: DragEvent, _: AIVariableContext): Promise; } export {}; //# sourceMappingURL=file-chat-variable-contribution.d.ts.map