/**
 * @license Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/**
 * @module ai/aireviewcore/aireviewcoreui
 */
import { type Context, type Editor, ContextPlugin } from '@ckeditor/ckeditor5-core';
import { type AIReviewCheck } from './model/aireviewcheck.js';
import { type AIReviewCheckRunUpdatedEvent } from './model/aireviewcheckrun.js';
import { type AIReviewCheckResultChange } from './model/aireviewcheckresultchange.js';
import { AITabs } from '../aitabs/aitabs.js';
import { type AIReviewCoreView } from './ui/aireviewcoreview.js';
export declare const AI_REVIEW_MODE_UI_EVENT_NAMES: readonly ["getReviewCheckList", "runReviewCheck", "abortReviewStream", "toggleDiff", "acceptAllChanges", "leaveReviewCoreResultList", "activateChange", "deactivateChange", "acceptChange", "dismissChange", "learnMore", "finishReview", "retryReview"];
import '../../theme/common/aiheader.css';
import '../../theme/common/ainotification.css';
import '../../theme/common/aibutton.css';
import '../../theme/common/aicolor.css';
import '../../theme/common/aitrackchanges.css';
import '../../theme/aireviewcore/aireviewcore.css';
export declare abstract class AIReviewCoreUI extends ContextPlugin {
    /**
     * @inheritDoc
     */
    static get requires(): readonly [typeof AITabs];
    /**
     * @inheritDoc
     */
    static get isOfficialPlugin(): true;
    /**
     * @inheritDoc
     */
    static get isPremiumPlugin(): true;
    /**
     * @inheritDoc
     */
    constructor(context: Context | Editor);
    /**
     * @inheritDoc
     */
    init(): void;
    /**
     * @inheritDoc
     */
    destroy(): void;
    /**
     * Sets the available checks in the AI Review Core list view.
     */
    setAvailableChecks(checks: Array<AIReviewCheck>): void;
    showReviewCheckList(): void;
    /**
     * Shows the result of a review check run.
     */
    showCheckRunResults(data: AIReviewCheckRunUpdatedEvent['args'][0]): void;
    showCheckRunResult(result: {
        contentDiffed: string;
        id: string;
    }): void;
    showGeneralResultsErrorView(): void;
    showGeneralReviewCoreErrorView(errorMessage?: string): void;
    showChunkErrorView(): void;
    setCheckResultTitle(title: string, subtitle?: string): void;
    setActiveStateInResults(id: string): void;
    resetActiveStateInResults(): void;
    updateChangeState(id: string, status: AIReviewCheckResultChange['status']): void;
    showReviewCompletedView(): void;
    showActionsWhenResultIsReady(): void;
    showNoChangesView(): void;
    hideActionsWhenResultIsReady(): void;
    showChangeBalloon(change: AIReviewCheckResultChange, target: () => HTMLElement | null, domEvent: MouseEvent | undefined, eventType: 'click' | 'hover', limiter?: HTMLElement, viewportOffset?: {
        top?: number;
        left?: number;
        bottom?: number;
        right?: number;
    }): void;
    hideChangeBalloon(): void;
    hideDiffInBalloon(): void;
    showDiffInBalloon(): void;
    getChangeElement(changeId: string): HTMLElement | null;
    deactivateChange(): void;
    abstract createMainView(): AIReviewCoreView;
    abstract registerTab(aiTabs: AITabs): void;
}
export type AIReviewCoreUIGetReviewCheckListEvent = {
    name: 'getReviewCheckList';
    args: [];
};
export type AIReviewCoreUILeaveReviewEvent = {
    name: 'leaveReview';
    args: [];
};
export type AIReviewCoreUIRetryReviewEvent = {
    name: 'retryReview';
    args: [];
};
