import { CancellationToken } from "../../../../base/common/cancellation.js";
import { Event } from "../../../../base/common/event.js";
import { IDisposable } from "../../../../base/common/lifecycle.js";
import { IChatSessionItemProvider, IChatSessionsExtensionPoint, IChatSessionContentProvider, IChatSessionItem, ChatSession } from "./chatSessionsService.js";
export interface IChatSessionsService {
    readonly _serviceBrand: undefined;
    readonly onDidChangeItemsProviders: Event<IChatSessionItemProvider>;
    readonly onDidChangeSessionItems: Event<string>;
    readonly onDidChangeAvailability: Event<void>;
    registerContribution(contribution: IChatSessionsExtensionPoint): IDisposable;
    getChatSessionContributions(): IChatSessionsExtensionPoint[];
    canResolveItemProvider(chatSessionType: string): Promise<boolean>;
    canResolveContentProvider(chatSessionType: string): Promise<boolean>;
    getChatSessionItemProviders(): IChatSessionItemProvider[];
    registerChatSessionItemProvider(provider: IChatSessionItemProvider): IDisposable;
    registerChatSessionContentProvider(provider: IChatSessionContentProvider): IDisposable;
    hasChatSessionItemProviders: boolean;
    provideChatSessionItems(chatSessionType: string, token: CancellationToken): Promise<IChatSessionItem[]>;
    notifySessionItemsChange(chatSessionType: string): void;
    provideChatSessionContent(chatSessionType: string, id: string, token: CancellationToken): Promise<ChatSession>;
}
export declare const IChatSessionsService: import("../../../../platform/instantiation/common/instantiation.js").ServiceIdentifier<IChatSessionsService>;
