import { CancellationToken } from "../../../../../../base/common/cancellation.js";
import { Event } from "../../../../../../base/common/event.js";
import { IDisposable } from "../../../../../../base/common/lifecycle.js";
import { URI } from "../../../../../../base/common/uri.js";
import { ITextModel } from "../../../../../../editor/common/model.js";
import { PromptsType } from "@codingame/monaco-vscode-47472025-cc45-5680-86cd-09ceaba921a1-common/vscode/vs/platform/prompts/common/prompts";
import { TSharedPrompt, IPromptPath, IChatPromptSlashCommand, IMetadata, ICustomChatMode } from "./types.js";
export declare const IPromptsService: import("../../../../../../platform/instantiation/common/instantiation.js").ServiceIdentifier<IPromptsService>;
export interface IPromptsService extends IDisposable {
    readonly _serviceBrand: undefined;
    getSyntaxParserFor(model: ITextModel): TSharedPrompt & {
        isDisposed: false;
    };
    listPromptFiles(type: PromptsType, token: CancellationToken): Promise<readonly IPromptPath[]>;
    getSourceFolders(type: PromptsType): readonly IPromptPath[];
    asPromptSlashCommand(name: string): IChatPromptSlashCommand | undefined;
    resolvePromptSlashCommand(data: IChatPromptSlashCommand): Promise<IMetadata | undefined>;
    findPromptSlashCommands(): Promise<IChatPromptSlashCommand[]>;
    findInstructionFilesFor(fileUris: readonly URI[]): Promise<readonly URI[]>;
    readonly onDidChangeCustomChatModes: Event<void>;
    getCustomChatModes(): Promise<readonly ICustomChatMode[]>;
    getMetadata(promptFileUri: URI): Promise<IMetadata>;
    getAllMetadata(promptUris: readonly URI[]): Promise<readonly IMetadata[]>;
}
