import { PureComponent } from 'react'; import type { dh as DhType } from '@deephaven/jsapi-types'; import { type GridRange, type GridRangeIndex } from '@deephaven/grid'; import { type Formatter } from '@deephaven/jsapi-utils'; import { type CancelablePromise } from '@deephaven/utils'; interface TableSaverProps { dh: typeof DhType; getDownloadWorker: () => Promise; isDownloading: boolean; onDownloadCompleted: () => void; onDownloadCanceled: () => void; onDownloadProgressUpdate: (progress: number, estimatedTime: number | null) => void; formatter: Formatter; } export default class TableSaver extends PureComponent> { static DOWNLOAD_CELL_CHUNK: number; static SNAPSHOT_BUFFER_SIZE: number; static STREAM_TIMEOUT: number; static SNAPSHOT_HANDLER_TIMEOUT: number; static defaultProps: { isDownloading: boolean; onDownloadCompleted: () => void; onDownloadCanceled: () => void; onDownloadProgressUpdate: () => void; }; static csvEscapeString(str: string): string; constructor(props: TableSaverProps); componentDidMount(): void; componentWillUnmount(): void; sw?: ServiceWorker; port?: MessagePort; fileWriter?: WritableStreamDefaultWriter; table?: DhType.Table; tableSubscription?: DhType.TableViewportSubscription; columns?: readonly DhType.Column[]; fileName?: string; includeColumnHeaders: boolean; useUnformattedValues: boolean; chunkRows?: number; gridRanges: readonly GridRange[]; gridRangeCounter?: number; rangedSnapshotsTotal: readonly number[]; rangedSnapshotCounter?: number; snapshotsTotal: number; snapshotCounter: number; snapshotsBuffer: Map; currentSnapshotIndex: number; snapshotPending: number; cancelableSnapshots: (CancelablePromise | null)[]; streamTimeout?: ReturnType; snapshotHandlerTimeout?: ReturnType; downloadStartTime?: number; iframe?: HTMLIFrameElement; useBlobFallback: boolean; getCachedCustomColumnFormatFlag: typeof import("@deephaven/jsapi-utils").isCustomColumnFormatDefined & import("@types/memoizee").Memoized; createWriterStream(port: MessagePort): WritableStream<{ rows?: string | undefined; header?: string | undefined; }>; startDownload(fileName: string, frozenTable: DhType.Table, tableSubscription: DhType.TableViewportSubscription, snapshotRanges: readonly GridRange[], modelRanges: readonly GridRange[], includeColumnHeaders: boolean, useUnformattedValues: boolean): void; finishDownload(): void; cancelDownload(): void; resetTableSaver(): void; handleDownloadTimeout(): void; writeTableHeader(): void; startWriteTableBody(): void; writeCsvTable(includeColumnHeaders: boolean): void; writeSnapshot(snapshotIndex: number, snapshotStartRow: GridRangeIndex, snapshotEndRow: GridRangeIndex): void; updateDownloadProgress(snapshotIndex: GridRangeIndex): void; convertSnapshotIntoCsv(snapshot: DhType.SubscriptionTableData): string; makeSnapshot(n: number): void; handlePortMessage({ data, }: MessageEvent<{ download: unknown; readableStreamPulling: unknown; }>): void; handleSnapshotResolved(snapshot: DhType.SubscriptionTableData, snapshotIndex: number, snapshotStartRow: GridRangeIndex, snapshotEndRow: GridRangeIndex): void; makeIframe(src: string): void; removeIframe(): void; render(): null; } export {}; //# sourceMappingURL=TableSaver.d.ts.map