import { URI } from "../../../../base/common/uri.js";
import { ICodeEditor } from "../../../../editor/browser/editorBrowser.js";
import { Position } from "../../../../editor/common/core/position.js";
import { IChatEditingSession } from "../../chat/common/chatEditingService.js";
import { IChatModel } from "@codingame/monaco-vscode-c2deffc4-ad68-5e63-8f95-9b89e0fc6898-common/vscode/vs/workbench/contrib/chat/common/chatModel";
import { Session } from "@codingame/monaco-vscode-ef4149eb-cc74-500f-a75b-c54539f01afa-common/vscode/vs/workbench/contrib/inlineChat/browser/inlineChatSession";
export interface ISessionKeyComputer {
    getComparisonKey(editor: ICodeEditor, uri: URI): string;
}
export interface IInlineChatSessionEvent {
    readonly editor: ICodeEditor;
    readonly session: Session;
}
export interface IInlineChatSessionEndEvent extends IInlineChatSessionEvent {
    readonly endedByExternalCause: boolean;
}
export interface IInlineChatSession2 {
    readonly initialPosition: Position;
    readonly uri: URI;
    readonly chatModel: IChatModel;
    readonly editingSession: IChatEditingSession;
    dispose(): void;
}
