import type { ListTable, ColumnsDefine } from '@visactor/vtable';
import type { pluginsDefinition } from '@visactor/vtable';
export interface ImportResult {
    columns: ColumnsDefine;
    records: Record<string, unknown>[];
}
export interface ExcelImportOptions {
    id?: string;
    headerRowCount?: number;
    exportData?: boolean;
    autoTable?: boolean;
    autoColumns?: boolean;
    delimiter?: string;
    batchSize?: number;
    enableBatchProcessing?: boolean;
    asyncDelay?: number;
}
export declare class ExcelImportPlugin implements pluginsDefinition.IVTablePlugin {
    id: string;
    name: string;
    runTime: "initialized"[];
    private options;
    private _tableInstance;
    constructor(options?: ExcelImportOptions);
    run(...args: [unknown, unknown, ListTable]): void;
    release(): void;
    importFile(): Promise<ImportResult>;
    import(type: 'file' | 'csv' | 'json' | 'html', source?: string | object, options?: Partial<ExcelImportOptions>): Promise<ImportResult>;
    private _importFromFileDialog;
    private _importFromString;
    private _importFromData;
    private _parseFile;
    private _getFileExtension;
    private _parseExcelFile;
    private _parseCsvFile;
    private _parseJsonFile;
    private _parseHtmlFile;
    private _buildColumnsFromHeaders;
    static importExcelToVTableData(file: File, options?: ExcelImportOptions): Promise<{
        columns: ColumnsDefine;
        records: Record<string, unknown>[];
    }>;
    private static detectHeaderRowCount;
    private static buildColumns;
    private _parseCSVString;
    private _parseJSONString;
    private _parseHTMLString;
    private _parseJSONData;
    private static _generateJavaScriptExport;
    private _exportToJS;
    private _processBatchRecords;
}
