﻿/**
* DevExpress HTML/JS Reporting (viewer\internal\_page.d.ts)
* Version:  26.1.3
* Build date: Jun 16, 2026
* Copyright (c) 2012 - 2026 Developer Express Inc. ALL RIGHTS RESERVED
* License: https://www.devexpress.com/Support/EULAs/universal.xml
*/
/// <reference types="jquery" />
import { INumericSize } from '@devexpress/analytics-core/analytics-elements-native';
import { DxDeferred } from '@devexpress/analytics-core/analytics-internal-native';
import { ArrayPropertyChangedEventArgs, BaseRenderingModel, PropertyChangedEventArgs } from '@devexpress/analytics-core/analytics-serializer-native';
import { Properties as DxMenuOptions } from 'devextreme/ui/menu';
import { PreviewEditingFieldsKeyboardHelper } from '../accessibility/_previewEditingFieldsKeyboardHelper';
import { ZoomAutoBy } from '../constants';
import { EditingFieldBase } from '../editing/models/editingFieldBase';
import { ReportPreview } from '../reportPreview';
import { IBrickNode } from '../utils/utils';
import { IPageSizeConfiguration, IPreviewImageOptions } from './_bindings';
import { IPreviewPageViewModel } from './_page.viewModel';
import { IGetPageResponse } from './_previewRequestWrapper';
import { SurfacePosition } from '../ai/_aiPanelModel';
export interface IGetPageRequest {
    pageIndex: number;
    documentId: string;
    resolution: number;
    includeBricks: boolean;
    useSvgEngine: boolean;
    customBrickDataStorageId: string;
    useOriginal: boolean;
    nonce?: string;
}
export declare class PreviewPage extends BaseRenderingModel<IPreviewPageViewModel> {
    reportPreview: ReportPreview;
    createViewModel(): IPreviewPageViewModel;
    updateViewModel(args: PropertyChangedEventArgs<PreviewPage> | ArrayPropertyChangedEventArgs<PreviewPage>): void;
    onPropertyChanged(args: PropertyChangedEventArgs<PreviewPage>): void;
    private _initializeEditingFields;
    private _getPixelRatio;
    private _onPageLoaded;
    private _onPageLoadFailed;
    private _updatePageSize;
    private _getAriaLabel;
    constructor(reportPreview: ReportPreview, pageIndex: number, processClick?: (target: IBrickNode) => void, subscribeToPageLoading?: boolean);
    updateSize(zoom?: number): number;
    updateActiveBricks(): void;
    getBricksTextContent(onlySelectedBricks?: boolean): string;
    activateBrick(brick: IBrickNode): void;
    deactivateBrick(brick: IBrickNode): void;
    getActiveBrick(): Array<IBrickNode>;
    clearBricks(): void;
    dispose(): void;
    revertToOriginal(): void;
    _shouldUseSvgEngine(zoom?: number): boolean;
    _getImageOptions(): IPreviewImageOptions;
    _setPageImgSrc(documentId: string, unifier: string, zoom?: number, shouldSkipBricks?: boolean, forcePng?: boolean): void;
    _requestPage(preview: ReportPreview): void;
    _updateImageSrc(includeBricks?: boolean): void;
    _getCurrentPageRequest(documentId: string, shouldSkipBricks?: boolean): IGetPageRequest;
    _getPageSizeConfiguration(): IPageSizeConfiguration;
    _clear(): void;
    initializeBrick(brick: IBrickNode, processClick: (target: IBrickNode) => void, editingFieldBricks: IBrickNode[]): void;
    _clickToBrick(e: JQueryEventObject): void;
    getBricksFlatList(brick: IBrickNode): IBrickNode[];
    editingFields: EditingFieldBase[];
    selectBrick: (path: string, ctrlKey?: boolean) => void;
    resetBrickRecusive: (brick: IBrickNode) => void;
    getBricks: (pageIndex: number) => void;
    actualResolution: number;
    isEmpty: boolean;
    pageIndex: number;
    _currentScaleFactor: any;
    _useOriginal: boolean;
    currentScaleFactor: number;
    imageHeight: number;
    imageWidth: number;
    color: string;
    aiCustomDocumentStorageId: string;
    isClientVisible: boolean;
    zoom: number;
    previewSize: number;
    autoFitBy: ZoomAutoBy;
    size: INumericSize;
    originalSize: INumericSize;
    imageSrcOptions: {
        rateLimit: {
            timeout: number;
            method: string;
        };
    };
    imageSrc: string;
    pageLoading: boolean;
    aiOperationInProgress: boolean;
    brickLoading: boolean;
    displayImageSrc: string;
    svgMarkup: string;
    useSvg: boolean;
    active: boolean;
    brick: IBrickNode;
    _unifier: string;
    currentPageAriaLabelImgAlt: string;
    page_id: string;
    loading: boolean;
    shouldSkipBrickLoading: boolean;
    brickColumnWidthArray: Array<number>;
    smartTagAIMenu: DxMenuOptions;
    smartTagAIMenuPosition: SurfacePosition;
    bricks: IBrickNode[];
    activeBricks: IBrickNode[];
    clickableBricks: IBrickNode[];
    maxZoom: number;
    disableResolutionReduction: boolean;
    editingFieldsKeyboardHelper: PreviewEditingFieldsKeyboardHelper;
    shouldSendRequest: boolean;
    lastGetPageDeferred: DxDeferred<IGetPageResponse>;
    _onAutoFitChanged: () => void;
    _onPageActiveChanged: (active: boolean) => void;
    private _lastZoom;
    private _useSvg;
    protected _selectedBrickPath: string;
    private _isDisposed;
    private _resizeTimeout;
    private _onResize;
    _onImageSrcChanged: () => void;
    private _editingFieldsSubscriptionDispose;
}
