//@ts-ignore
import React, { Component } from 'react';
import GcPdfViewer from "..";
/// <reference path="../vendor/i18next.d.ts" />
//@ts-ignore

import { i18n } from 'i18next';
import { TableDataExtractionDialogProps, TableDataExtractionDialogModel } from './types';
import { TableDefClientModel, TableDataExportFormat } from '../SupportApi/types';
import { TableDataExtractor } from './TableDataExtractor';
/**
 * Extract Table Data panel.
 **/
export declare class TableDataExtractionPanel extends Component<TableDataExtractionDialogProps, TableDataExtractionDialogModel> {
    private _hidePromise?;
    private _resolve?;
    state: {
        enabled: boolean;
        workInProgress: boolean;
        showModal: boolean;
        exportFormat: TableDataExportFormat;
        version: number;
    };
    _dialogContentElem: HTMLDivElement | null;
    _mounted: boolean;
    componentDidMount(): void;
    raiseStateChanged(): void;
    componentWillUnmount(): void;
    get viewer(): GcPdfViewer;
    get tablesData(): TableDefClientModel[];
    /**
     * Shows the 'Extract table data' dialog box.
     * @param viewer
     */
    show(viewer: GcPdfViewer): Promise<void>;
    get tableDataExtractor(): TableDataExtractor;
    /**
     * Hides the dialog
     * */
    hide(): void;
//@ts-ignore
//@ts-ignore
    render(): React.JSX.Element | null;
    get isDocumentReady(): boolean;
//@ts-ignore
    renderExportButtons(): JSX.Element[];
//@ts-ignore
    renderTableDataPreview(disabled: boolean): JSX.Element | null;
    get tableExtractOptionsDescription(): {
        [optionName: string]: {
            label: string;
            title: string;
            defaultValue: any;
            step?: number;
            min?: number;
            max?: number;
            type: "checkbox" | "number";
        };
    };
//@ts-ignore
    renderOptions(isSelectRegionMode: boolean, disabled: boolean): JSX.Element | null;
    onOptionChanged(propertyName: string, val: any): void;
//@ts-ignore
    renderSelectRegionButton(isSelectRegionMode: boolean, disabled: boolean): JSX.Element;
    extractTableData(pageIndex: number, bounds: number[], tableDef?: TableDefClientModel, args?: {
        skipUndo: boolean;
    }): Promise<void>;
    setInProgress(inProgress: boolean): void;
    /**
     * Resets the table extraction options to their default values and updates the state.
     *
     * @returns {Promise<void>} - A promise that resolves when the options are successfully reset.
     */
    resetOptions(): Promise<void>;
    /**
     * Checks if the current state has any extraction options set,
     * excluding properties that are not considered options (Bounds, PageIndices, DefinedTables).
     *
     * @returns {boolean} - True if any relevant extraction option is set, otherwise false.
     */
    get hasExtractOptions(): boolean;
    private _resolveHidePromise;
    get in17n(): i18n;
}
