import { LitElement, PropertyValues, TemplateResult } from 'lit'; import { FromSchema } from 'json-schema-to-ts'; import type { DateFormats } from './lit-data-grid-tanstack.js'; import { litAttachmentsTabDocumentSchema, litAttachmentsTabSettingsValueSchema, litAttachmentsTabSchema } from '../schemas/index.js'; import './lit-badge.js'; import '../shared/lit-icon.js'; import '../shared/lit-icon-button.js'; import '../shared/lit-select.js'; import '../shared/lit-overflow-tooltip.js'; import '../shared/lit-document-thumbnail.js'; import '../shared/lit-filter-input.js'; import '../shared/lit-menu.js'; import '../shared/lit-menu-item.js'; import '../shared/lit-checkbox.js'; import '../shared/lit-toggle.js'; import '../assets/illustration/no-preview.js'; import '../assets/illustration/not-found.js'; import '../shared/lit-loading-bar.js'; import '../components/lit-section-tab.js'; import './components-settings/attachments-tab-settings.js'; type Document = FromSchema; export type AttachmentsTabProps = FromSchema; export type AttachmentsTabSettingsValue = FromSchema; export declare class LitAttachmentsTab extends LitElement { hideTabWhen?: boolean; initialSelection?: string; documents?: Document[]; type?: 'compact' | 'select'; scale?: number; onClick?: (documentId: string) => Promise; isDocumentLoading: boolean; enableSettings?: boolean; enableThumbnails?: boolean; thumbnailSize?: number; enableAdditionalInformation?: boolean; enableThumbnailDetail?: boolean; thumbnailPreviewMaxWidth?: number; thumbnailPreviewMaxHeight?: number; enableSearchInDocuments?: boolean; enableComparison?: boolean; userLang?: string; dateFormat?: DateFormats; onSettingsChanged: (value?: AttachmentsTabSettingsValue) => void; private selectedDocument?; private selectedId; private pageNumber; private pageCount; private preview; private documentData; private isOpenModal; private localScale?; private filterText; private focusedIndex; private isWideLayout; private comparisonModalOpen; private comparisonDocumentLeft; private comparisonDocumentRight; private selectedDocumentLeftCanvas?; private selectedDocumentRightCanvas?; private pageNumberLeft; private pageNumberRight; private pageCountLeft; private pageCountRight; private localScaleLeft?; private localScaleRight?; private isDocumentLoadingLeft; private isDocumentLoadingRight; private contextMenuOpen; private contextMenuPosition; private contextMenuDocumentId; private syncZoom; private handleSyncZoomChange; private canvas; private ctx; private outerContainer; private activeRenderTask; private activeRenderTaskLeft; private activeRenderTaskRight; private isDragging; private clickX; private clickY; private prevScrollLeft; private prevScrollTop; private abortController; private resizeObserver; private longPressTimer; private blobUrls; private touchStartDistance; private touchStartScale; private isGesturing; private lastTapTime; private doubleTapThreshold; disconnectedCallback(): void; /** * Revoke all tracked blob URLs to prevent memory leaks */ private revokeBlobUrls; /** * Create and track a blob URL for cleanup */ private createTrackedBlobUrl; connectedCallback(): void; firstUpdated(): Promise; protected updated(_changedProperties: PropertyValues): void; private handleReadFile; /** * Shared method to fetch document data from either onClick handler or URL */ private fetchDocumentData; private loadDocumentData; private handleDocumentClick; /** * Shared rendering method for both main viewer and comparison panels */ private renderDocumentToCanvas; private renderPage; private getSelectedDocumentName; private handlePageChange; private handleDownload; private handleZoom; private handleMouseDown; private handleMouseMove; private handleMouseUp; private handleTouchStartCanvas; private handleTouchMoveCanvas; private handleTouchEndCanvas; private handleTouchStartComparison; private handleTouchMoveComparison; private handleTouchEndComparison; private handleWheelZoom; private handleWheelZoomComparison; private toggleModal; private onSettingsChangedCallback; private getThumbnailUrl; private getFilteredDocuments; private handleKeyDown; private scrollToFocusedItem; private handleContextMenu; private closeContextMenu; private handleContextMenuScroll; private handleContextMenuClickOutside; private addContextMenuListeners; private removeContextMenuListeners; private handleTouchStart; private handleTouchEnd; private cancelLongPress; private openComparisonModal; private closeComparisonModal; private handleBackdropClick; private swapComparisonSides; private loadComparisonDocuments; private loadComparisonDocument; private loadComparisonDocumentData; private renderComparisonPage; private handleComparisonPageChange; private handleComparisonZoom; static styles: import("lit").CSSResult[]; render(): TemplateResult | null; private renderComparisonPanel; private handleDownloadComparison; } declare global { interface HTMLElementTagNameMap { 'lit-attachments-tab': LitAttachmentsTab; } } export {};