import React, { Component, type ReactElement } from 'react'; import { type ItemKey } from '@deephaven/components'; import { GridRange, type ModelSizeMap, type MoveOperation } from '@deephaven/grid'; import type { dh as DhType } from '@deephaven/jsapi-types'; import './TableCsvExporter.scss'; import type IrisGridModel from '../IrisGridModel'; interface TableCsvExporterProps { model: IrisGridModel; name: string; userColumnWidths: ModelSizeMap; movedColumns: readonly MoveOperation[]; isDownloading: boolean; tableDownloadStatus: string; tableDownloadProgress: number; tableDownloadEstimatedTime: number; onDownloadStart: () => void; onDownload: (fileName: string, frozenTable: DhType.Table, tableSubscription: DhType.TableViewportSubscription, snapshotRanges: readonly GridRange[], modelRanges: readonly GridRange[], includeColumnHeaders: boolean, useUnformattedValues: boolean) => void; onCancel: () => void; selectedRanges: readonly GridRange[]; } interface TableCsvExporterState { fileName: string; downloadRowOption: string; customizedDownloadRowOption: string; customizedDownloadRows: number; includeColumnHeaders: boolean; includeHiddenColumns: boolean; useUnformattedValues: boolean; errorMessage: React.ReactNode; id: string; } declare class TableCsvExporter extends Component { static FILENAME_DATE_FORMAT: string; static DOWNLOAD_STATUS: { INITIATING: string; DOWNLOADING: string; FINISHED: string; CANCELED: string; }; static DOWNLOAD_ROW_OPTIONS: { ALL_ROWS: string; SELECTED_ROWS: string; CUSTOMIZED_ROWS: string; }; static CUSTOMIZED_ROWS_OPTIONS: { FIRST: string; LAST: string; }; static DEFAULT_DOWNLOAD_ROWS: number; static defaultProps: { onDownloadStart: () => void; isDownloading: boolean; tableDownloadStatus: string; tableDownloadProgress: number; tableDownloadEstimatedTime: null; selectedRanges: never[]; }; static getDateString(dh: typeof DhType): string; constructor(props: TableCsvExporterProps); getSnapshotRanges(): GridRange[]; getModelRanges(ranges: readonly GridRange[]): GridRange[]; resetDownloadState(): void; handleDownloadClick(): Promise; handleDownloadRowOptionChanged(value: string): void; handleCustomizedDownloadRowOptionChanged(value: ItemKey | null): void; handleCustomizedDownloadRowsChanged(value: number): void; handleIncludeColumnHeadersChanged(): void; handleIncludeHiddenColumnsChanged(): void; handleUseUnformattedValuesChanged(): void; validateOptionInput(): boolean; render(): ReactElement; } export default TableCsvExporter; //# sourceMappingURL=TableCsvExporter.d.ts.map