import { CancellationToken } from "../../../../../base/common/cancellation.js"; import { ThemeIcon } from "../../../../../base/common/themables.js"; import { URI } from "../../../../../base/common/uri.js"; import { IMarkdownString } from "../../../../../base/common/htmlContent.js"; export interface IChatContextItem { icon?: ThemeIcon; label?: string; resourceUri?: URI; modelDescription?: string; tooltip?: IMarkdownString; handle: number; value?: string; command?: { id: string; }; } export interface IChatWorkspaceContextProvider { provideWorkspaceChatContext(token: CancellationToken): Promise; } export interface IChatExplicitContextProvider { provideChatContext(token: CancellationToken): Promise; resolveChatContext(context: IChatContextItem, token: CancellationToken): Promise; } export interface IChatResourceContextProvider { provideChatContext(resource: URI, withValue: boolean, token: CancellationToken): Promise; resolveChatContext(context: IChatContextItem, token: CancellationToken): Promise; }