﻿/**
* DevExpress HTML/JS Reporting (viewer\ai\_aiPanelModel.d.ts)
* Version:  24.2.6
* Build date: Mar 18, 2025
* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED
* License: https://www.devexpress.com/Support/EULAs/universal.xml
*/
import { ArrayPropertyChangedEventArgs, BaseRenderingModel, PropertyChangedEventArgs } from '@devexpress/analytics-core/analytics-serializer-native';
import { DxDeferred } from '@devexpress/analytics-core/analytics-internal-native';
import { TabInfo } from '@devexpress/analytics-core/analytics-utils-native';
import { Properties as DxMenuOptions } from 'devextreme/ui/menu';
import dxLoadIndicator from 'devextreme/ui/load_indicator';
import { ReportPreview } from '../reportPreview';
import { IBrickNode } from '../utils/utils';
import { AILanguageInfo } from '../settings';
import { IAIPanelViewModel, TextSourceTarget } from './_aiPanel.viewmodel';
export type SurfacePosition = {
    topP: string;
    leftP?: string;
    rightP?: string;
    heightP: string;
    widthP: string;
};
export declare class AIPanelViewModel extends BaseRenderingModel<IAIPanelViewModel> {
    reportPreview: ReportPreview;
    tabInfo: TabInfo;
    aiProcessingRequestDeferred: DxDeferred<any>;
    ignore: boolean;
    aiProcessingResultText: string;
    selectedLanguage: string;
    selectedTarget: string;
    selectedPage: number;
    proceedForAllChunks: boolean;
    warningTextLimitPopupVisible: boolean;
    pageSelectBoxVisible: boolean;
    proceedNextButtonClick: (e: any) => void;
    copyButtonTemplate: string;
    limitExceededWarningMsg: string;
    model: AIPanelViewModel;
    translateButtonLoader: dxLoadIndicator;
    summarizeButtonLoader: dxLoadIndicator;
    languages: AILanguageInfo[];
    currentPageSelectionSubcriber: () => void;
    loading: boolean;
    TextSourceTargetText: {
        Document: any;
        Page: any;
        Selection: any;
    };
    InvalidLanguageErrorMsg: string;
    SummarizeActionText: string;
    TranslateActionText: string;
    warningMsg: string;
    targets: {
        key: TextSourceTarget;
        text: any;
    }[];
    smartTagAIMenu: DxMenuOptions;
    languageSelectBoxComponent: any;
    pagesListDataSource: {
        key: number;
        text: string;
    }[];
    prevRespose: string;
    constructor(reportPreview: ReportPreview);
    expandAITabPanel(): void;
    handleSelectedBrickChangedEvent(selectedBricks: IBrickNode[]): void;
    updateViewModel(args: PropertyChangedEventArgs<AIPanelViewModel> | ArrayPropertyChangedEventArgs<AIPanelViewModel>): void;
    createViewModel(): IAIPanelViewModel;
    onPropertyChanged(args: PropertyChangedEventArgs<AIPanelViewModel> | ArrayPropertyChangedEventArgs<AIPanelViewModel>): void;
    get translateWholeDocument(): boolean;
    _preparetextProcessingButtonTemplate(data: any, container: any): HTMLDivElement;
    _getTextContentToProcess(): string;
    copyResultClick(e: any): void;
    onSummarizeClick(): void;
    onTranslateClick(): void;
    translateText(text: string, prevResponse?: string, currentChunkPosition?: number): void;
    summarizeText(text: string, language?: string, prevResponse?: string, currentChunkPosition?: number): void;
    _handleTextProcessingResult(result: any, nextChunkRequestFunc: (prevResultText: string, nextChunkPosition: number) => void, isSummary?: boolean): void;
    resizeResultArea(): void;
    failRequestHandler(errorMessage: string, ignore: boolean): void;
    clearProcessing(clearContent?: boolean): void;
    disabled(): boolean;
    dispose(): void;
}
