import { IDisposable } from "../../../../../base/common/lifecycle.js";
import { ChatTreeItem, IChatCodeBlockInfo } from "@codingame/monaco-vscode-b994942c-360d-5b68-8a33-77d4bde6b714-common/vscode/vs/workbench/contrib/chat/browser/chat";
import { IChatRendererContent } from "@codingame/monaco-vscode-c2deffc4-ad68-5e63-8f95-9b89e0fc6898-common/vscode/vs/workbench/contrib/chat/common/chatViewModel";
export interface IChatContentPart extends IDisposable {
    domNode: HTMLElement | undefined;
    /**
     * Used to indicate a part's ownership of a code block.
     */
    codeblocksPartId?: string;
    /**
     * Codeblocks that were rendered by this part into CodeBlockModelCollection.
     */
    codeblocks?: IChatCodeBlockInfo[];
    /**
     * Returns true if the other content is equivalent to what is already rendered in this content part.
     * Returns false if a rerender is needed.
     * followingContent is all the content that will be rendered after this content part (to support progress messages' behavior).
     */
    hasSameContent(other: IChatRendererContent, followingContent: IChatRendererContent[], element: ChatTreeItem): boolean;
    addDisposable?(disposable: IDisposable): void;
}
export interface IChatContentPartRenderContext {
    readonly element: ChatTreeItem;
    readonly elementIndex: number;
    readonly container: HTMLElement;
    readonly content: ReadonlyArray<IChatRendererContent>;
    readonly contentIndex: number;
    readonly preceedingContentParts: ReadonlyArray<IChatContentPart>;
}
