import type { FilterConfig, Group, PaginationConfig, PivotTableState, VirtualScrollManager } from '@mindfiredigital/pivothead'; import type { EnhancedPivotEngine, PivotDataRecord, PivotOptions } from '../../types/types'; export interface PivotHeadHost { engine: EnhancedPivotEngine; _engineUnsubscribe: (() => void) | null; _data: PivotDataRecord[]; _originalData: PivotDataRecord[]; _options: PivotOptions; _filters: FilterConfig[]; _rawFilters: FilterConfig[]; _processedFilters: FilterConfig[]; _rowGroups: Group[]; _columnGroups: Group[]; _pagination: PaginationConfig; _showRawData: boolean; _rawDataColumnOrder: string[]; _processedColumnOrder: string[]; _virtualScroller?: VirtualScrollManager; shadowRoot: ShadowRoot | null; renderRawTable(): void; renderFullUI(): void; _renderSwitch(): void; setupControls(): void; addDragListeners(): void; createProcessedSortIcon(field: string): string; createSortIcon(field: string): string; calculatePaginationForCurrentView(): void; updatePaginationForData(data: unknown[]): void; getPaginatedData(data: T[]): T[]; swapColumns(fromIndex: number, toIndex: number): void; swapRows(fromIndex: number, toIndex: number): void; dispatchEvent(event: Event): boolean; getAttribute(qualifiedName: string): string | null; setAttribute(qualifiedName: string, value: string): void; removeAttribute(qualifiedName: string): void; handleEngineStateChange(state: PivotTableState): void; filters: FilterConfig[]; reset(): void; setPageSize(pageSize: number): void; previousPage(): void; nextPage(): void; exportToHTML(fileName?: string): void; exportToPDF(fileName?: string): void; exportToExcel(fileName?: string): void; openPrintDialog(): void; showFormatPopup(): void; data: PivotDataRecord[]; options: PivotOptions; pagination: PaginationConfig; draggedColumn: HTMLElement | null; draggedRow: HTMLElement | null; }