import { IMarkdownString, IRange } from '@opensumi/ide-core-common';
import type { UriComponents } from '@opensumi/monaco-editor-core/esm/vs/base/common/uri';
import type { Comment, CommentInput, CommentOptions, CommentReaction, CommentThread, CommentThreadChangedEvent, CommentingRanges } from '@opensumi/monaco-editor-core/esm/vs/editor/common/languages';
/**
 * @internal
 */
declare enum CommentThreadCollapsibleState {
    /**
     * Determines an item is collapsed
     */
    Collapsed = 0,
    /**
     * Determines an item is expanded
     */
    Expanded = 1
}
/**
 * @internal
 */
declare enum CommentThreadState {
    Unresolved = 0,
    Resolved = 1
}
declare enum CommentThreadApplicability {
    Current = 0,
    Outdated = 1
}
/**
 * @internal
 */
declare enum CommentMode {
    Editing = 0,
    Preview = 1
}
/**
 * @internal
 */
declare enum CommentState {
    Published = 0,
    Draft = 1
}
export interface CommentChanges {
    readonly uniqueIdInThread: number;
    readonly body: string | IMarkdownString;
    readonly userName: string;
    readonly userIconPath?: UriComponents;
    readonly contextValue?: string;
    readonly commentReactions?: CommentReaction[];
    readonly label?: string;
    readonly mode?: CommentMode;
    readonly state?: CommentState;
    readonly timestamp?: string;
}
export type CommentThreadChanges<T = IRange> = Partial<{
    range: T | undefined;
    label: string;
    contextValue: string | undefined;
    comments: CommentChanges[];
    collapseState: CommentThreadCollapsibleState;
    canReply: boolean;
    state: CommentThreadState;
    applicability: CommentThreadApplicability;
    isTemplate: boolean;
}>;
export { Comment, CommentInput, CommentMode, CommentOptions, CommentReaction, CommentThread, CommentThreadChangedEvent, CommentThreadCollapsibleState, CommentingRanges, };
//# sourceMappingURL=comments.d.ts.map