import { Event } from "../../../../base/common/event.js";
import { IDisposable } from "../../../../base/common/lifecycle.js";
import { URI } from "../../../../base/common/uri.js";
import { IChatElicitationRequest } from "../common/chatService.js";
import { IChatResponseViewModel } from "@codingame/monaco-vscode-2339d6ac-d6bb-53cd-95ee-81911735d1c7-common/vscode/vs/workbench/contrib/chat/common/chatViewModel";
import { ChatAgentLocation } from "../common/constants.js";
import { IChatWidget, type ICodeBlockActionContextProvider, type IQuickChatOpenOptions } from "@codingame/monaco-vscode-2339d6ac-d6bb-53cd-95ee-81911735d1c7-common/vscode/vs/workbench/contrib/chat/browser/chat";
import { ChatWidget } from "@codingame/monaco-vscode-a793b3ee-7ba9-5176-a019-30ec806fdd95-common/vscode/vs/workbench/contrib/chat/browser/chatWidget";
export declare const IChatWidgetService: import("../../../../platform/instantiation/common/instantiation.js").ServiceIdentifier<IChatWidgetService>;
export interface IChatWidgetService {
    readonly _serviceBrand: undefined;
    /**
    * Returns the most recently focused widget if any.
    */
    readonly lastFocusedWidget: IChatWidget | undefined;
    readonly onDidAddWidget: Event<IChatWidget>;
    getAllWidgets(): ReadonlyArray<IChatWidget>;
    getWidgetByInputUri(uri: URI): IChatWidget | undefined;
    /** @deprecated Use {@link getWidgetBySessionResource} instead */
    getWidgetBySessionId(sessionId: string): IChatWidget | undefined;
    getWidgetBySessionResource(sessionResource: URI): IChatWidget | undefined;
    getWidgetsByLocations(location: ChatAgentLocation): ReadonlyArray<IChatWidget>;
}
export declare const IQuickChatService: import("../../../../platform/instantiation/common/instantiation.js").ServiceIdentifier<IQuickChatService>;
export interface IQuickChatService {
    readonly _serviceBrand: undefined;
    readonly onDidClose: Event<void>;
    readonly enabled: boolean;
    readonly focused: boolean;
    toggle(options?: IQuickChatOpenOptions): void;
    focus(): void;
    open(options?: IQuickChatOpenOptions): void;
    close(): void;
    openInChatView(): void;
}
export declare const IChatAccessibilityService: import("../../../../platform/instantiation/common/instantiation.js").ServiceIdentifier<IChatAccessibilityService>;
export interface IChatAccessibilityService {
    readonly _serviceBrand: undefined;
    acceptRequest(): number;
    acceptResponse(widget: ChatWidget, container: HTMLElement, response: IChatResponseViewModel | string | undefined, requestId: number, isVoiceInput?: boolean): void;
    acceptElicitation(message: IChatElicitationRequest): void;
}
export declare const IChatCodeBlockContextProviderService: import("../../../../platform/instantiation/common/instantiation.js").ServiceIdentifier<IChatCodeBlockContextProviderService>;
export interface IChatCodeBlockContextProviderService {
    readonly _serviceBrand: undefined;
    readonly providers: ICodeBlockActionContextProvider[];
    registerProvider(provider: ICodeBlockActionContextProvider, id: string): IDisposable;
}
