import { MonacoEditorZoneWidget } from '@theia/monaco/lib/browser/monaco-editor-zone-widget'; import { Comment, CommentThread } from '../../../common/plugin-api-rpc-model'; import { CommentGlyphWidget } from './comment-glyph-widget'; import { BaseWidget } from '@theia/core/lib/browser'; import * as React from '@theia/core/shared/react'; import { CommentsService } from './comments-service'; import { CommandMenu, CommandRegistry, CompoundMenuNode, MenuModelRegistry, MenuPath } from '@theia/core/lib/common'; import { CommentsContext } from './comments-context'; import { RefObject } from '@theia/core/shared/react'; import * as monaco from '@theia/monaco-editor-core'; import { Root } from '@theia/core/shared/react-dom/client'; import { CommentAuthorInformation } from '@theia/plugin'; import { ContextKeyService } from '@theia/core/lib/browser/context-key-service'; export declare const COMMENT_THREAD_CONTEXT: MenuPath; export declare const COMMENT_CONTEXT: MenuPath; export declare const COMMENT_TITLE: MenuPath; export declare class CommentThreadWidget extends BaseWidget { private _owner; private _commentThread; private commentService; protected readonly menus: MenuModelRegistry; protected readonly commentsContext: CommentsContext; protected readonly contextKeyService: ContextKeyService; protected readonly commands: CommandRegistry; protected readonly zoneWidget: MonacoEditorZoneWidget; protected readonly containerNodeRoot: Root; protected readonly commentGlyphWidget: CommentGlyphWidget; protected readonly commentFormRef: RefObject; protected isExpanded?: boolean; constructor(editor: monaco.editor.IStandaloneCodeEditor, _owner: string, _commentThread: CommentThread, commentService: CommentsService, menus: MenuModelRegistry, commentsContext: CommentsContext, contextKeyService: ContextKeyService, commands: CommandRegistry); getGlyphPosition(): number; collapse(): void; private deleteCommentThread; dispose(): void; toggleExpand(lineNumber: number): void; hide(): void; display(options: MonacoEditorZoneWidget.Options): void; private onEditorMouseDown; get owner(): string; get commentThread(): CommentThread; private getThreadLabel; update(): void; protected render(): void; } declare namespace CommentForm { interface Props { menus: MenuModelRegistry; commentThread: CommentThread; commands: CommandRegistry; contextKeyService: ContextKeyService; commentsContext: CommentsContext; widget: CommentThreadWidget; } interface State { expanded: boolean; } } export declare class CommentForm

extends React.Component { private inputRef; private inputValue; private readonly getInput; private toDisposeOnUnmount; private readonly clearInput; update(): void; protected expand: () => void; protected collapse: () => void; componentDidMount(): void; componentWillUnmount(): void; private readonly onInput; constructor(props: P); /** * Renders the comment form with textarea, actions, and reply button. * * @returns The rendered comment form */ protected renderCommentForm(): React.ReactNode; /** * Renders the author information section. * * @param authorInfo The author information to display * @returns The rendered author information section */ protected renderAuthorInfo(authorInfo: CommentAuthorInformation): React.ReactNode; render(): React.ReactNode; } declare namespace ReviewComment { interface Props { menus: MenuModelRegistry; comment: Comment; commentThread: CommentThread; contextKeyService: ContextKeyService; commentsContext: CommentsContext; commands: CommandRegistry; commentForm: RefObject; } interface State { hover: boolean; } } export declare class ReviewComment

extends React.Component { constructor(props: P); protected detectHover: (element: HTMLElement | null) => void; protected showHover: () => void; protected hideHover: () => void; render(): React.ReactNode; protected localeDate(timestamp: string | undefined): string; } declare namespace CommentBody { interface Props { value: string; isVisible: boolean; } } export declare class CommentBody extends React.Component { render(): React.ReactNode; } declare namespace CommentEditContainer { interface Props { contextKeyService: ContextKeyService; commentsContext: CommentsContext; menus: MenuModelRegistry; comment: Comment; commentThread: CommentThread; commentForm: RefObject; commands: CommandRegistry; } } export declare class CommentEditContainer extends React.Component { private readonly inputRef; private dirtyCommentMode; private dirtyCommentFormState; componentDidUpdate(prevProps: Readonly, prevState: Readonly<{}>): void; render(): React.ReactNode; } declare namespace CommentsInlineAction { interface Props { nodePath: MenuPath; node: CommandMenu; commentThread: CommentThread; commentUniqueId: number; commands: CommandRegistry; contextKeyService: ContextKeyService; commentsContext: CommentsContext; } } export declare class CommentsInlineAction extends React.Component { render(): React.ReactNode; } declare namespace CommentActions { interface Props { contextKeyService: ContextKeyService; commentsContext: CommentsContext; menuPath: MenuPath; menu: CompoundMenuNode | undefined; commentThread: CommentThread; getInput: () => string; clearInput: () => void; } } export declare class CommentActions extends React.Component { render(): React.ReactNode; } declare namespace CommentAction { interface Props { commentThread: CommentThread; contextKeyService: ContextKeyService; commentsContext: CommentsContext; nodePath: MenuPath; node: CommandMenu; onClick: () => void; } } export declare class CommentAction extends React.Component { render(): React.ReactNode; } export {}; //# sourceMappingURL=comment-thread-widget.d.ts.map