import { URI } from "../../../../../../base/common/uri.js";
import { Event } from "../../../../../../base/common/event.js";
import { ResolveError } from "@codingame/monaco-vscode-fab30422-b487-5f4e-8d30-8b4d266e3fcd-common/vscode/vs/workbench/contrib/chat/common/promptFileReferenceErrors";
import { IDisposable } from "../../../../../../base/common/lifecycle.js";
import { VSBufferReadableStream } from "../../../../../../base/common/buffer.js";
import { PromptsType } from "@codingame/monaco-vscode-47472025-cc45-5680-86cd-09ceaba921a1-common/vscode/vs/platform/prompts/common/prompts";
export interface IPromptContentsProvider extends IDisposable {
    readonly uri: URI;
    readonly languageId: string;
    readonly promptType: PromptsType | "non-prompt";
    readonly contents: Promise<VSBufferReadableStream>;
    readonly sourceName: string;
    readonly onContentChanged: Event<VSBufferReadableStream | ResolveError>;
    readonly onDispose: Event<void>;
    start(): this;
    createNew(promptContentsSource: {
        uri: URI;
    }): IPromptContentsProvider;
}
