import { URI } from "@codingame/monaco-vscode-api/vscode/vs/base/common/uri"; import { IRange } from "@codingame/monaco-vscode-api/vscode/vs/editor/common/core/range"; import { Disposable } from "@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle"; import { IChatRequestFileEntry, IChatRequestVariableEntry } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatVariableEntries"; import { IFileService } from "@codingame/monaco-vscode-api/vscode/vs/platform/files/common/files.service"; import { ISharedWebContentExtractorService } from "@codingame/monaco-vscode-api/vscode/vs/platform/webContentExtractor/common/webContentExtractor.service"; import { IChatAttachmentResolveService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/chatAttachmentResolveService.service"; export interface IChatAttachmentChangeEvent { readonly deleted: readonly string[]; readonly added: readonly IChatRequestVariableEntry[]; readonly updated: readonly IChatRequestVariableEntry[]; } export declare class ChatAttachmentModel extends Disposable { private readonly fileService; private readonly webContentExtractorService; private readonly chatAttachmentResolveService; private readonly _attachments; private _onDidChange; readonly onDidChange: import("@codingame/monaco-vscode-api/vscode/vs/base/common/event").Event; constructor(fileService: IFileService, webContentExtractorService: ISharedWebContentExtractorService, chatAttachmentResolveService: IChatAttachmentResolveService); get attachments(): ReadonlyArray; get size(): number; get fileAttachments(): URI[]; getAttachmentIDs(): Set; addFile(uri: URI, range?: IRange): Promise; addFolder(uri: URI): void; clear(clearStickyAttachments?: boolean): void; addContext(...attachments: IChatRequestVariableEntry[]): void; clearAndSetContext(...attachments: IChatRequestVariableEntry[]): void; delete(...variableEntryIds: string[]): void; updateContext(toDelete: Iterable, upsert: Iterable): void; asFileVariableEntry(uri: URI, range?: IRange): IChatRequestFileEntry; asImageVariableEntry(uri: URI): Promise; }