import { PreviewPage } from '../../../internal/_page'; import { MobileReportPreview } from '../../mobilePreview'; import { ArrayPropertyChangedEventArgs, BaseRenderingModel, IViewModel, PropertyChangedEventArgs } from '@devexpress/analytics-core/analytics-serializer-native'; import { GalleryItem, GalleryItemBlock, IGalleryItemViewModel } from './_galleryItem'; import { OptionChangedEvent } from 'devextreme/ui/gallery'; export interface IAbsolutePosition { left: number; top: number; height: number; width: number; } export interface IGalleryViewModel extends IViewModel { items: IGalleryItemViewModel[]; animationEnabled: boolean; selectedIndex: number; onOptionChanged: (event: OptionChangedEvent) => void; } export declare class GalleryModel extends BaseRenderingModel { preview: MobileReportPreview; deferredUpdateViewModel(): boolean; private _spacing; private _animationTimeout; private _currentItemSubscriptionDispose; private _createBlock; createViewModel(): IGalleryViewModel; updateViewModel(args: PropertyChangedEventArgs | ArrayPropertyChangedEventArgs): void; onPropertyChanged(args: PropertyChangedEventArgs | ArrayPropertyChangedEventArgs): void; updateContentSize(): void; constructor(preview: MobileReportPreview); dispose(): void; updatePagesVisible(preview: MobileReportPreview): void; updateCurrentBlock(): void; updateContent(preview: MobileReportPreview, pagesCount: number): void; updateBlockPositions(blocks: GalleryItemBlock[], visible: boolean): void; updateStartBlocks(galleryItem: GalleryItem, pages: PreviewPage[]): number; updateLastBlocks(galleryItem: GalleryItem, pages: PreviewPage[]): number; updateBlocks(galleryItem: GalleryItem, pagesCount: number, preview: MobileReportPreview, index: number, useAnimation?: boolean): void; changePage(preview: MobileReportPreview): void; repaint: object; _repaint: () => void; repaintTimeout: ReturnType; contentSize: { width: string; height: string; }; horizontal: number; vertical: number; pageCount: number; isAnimated: boolean; items: GalleryItem[]; currentBlockText: string; selectedIndexReal: number; selectedIndex: number; animationEnabled: boolean; getSwipeRightEnabled: () => boolean; getSwipeLeftEnabled: () => boolean; }