import { ITabulator } from '../../../../../../types/src/table';
import { default as Module } from '../../core/Module';
import { DownloadOptions, RowRangeLookup } from '../../core/types';

type DownloadFunction = (this: ITabulator, list: any[], options: DownloadOptions, setFileContents: (data: any, mimeType: string) => void) => void;
type InterceptCallback = ((data: any) => void) | boolean;
export default class Download extends Module {
    static moduleName: string;
    static downloaders: Record<string, DownloadFunction>;
    constructor(table: ITabulator);
    initialize(): void;
    deprecatedOptionsCheck(): void;
    downloadToTab(type: string | DownloadFunction, filename?: string, options?: DownloadOptions, active?: RowRangeLookup): void;
    download(type: string | DownloadFunction, filename?: string, options?: DownloadOptions, range?: RowRangeLookup, interceptCallback?: InterceptCallback): void;
    generateExportList(range?: RowRangeLookup): any[];
    triggerDownload(data: any, mime: string, type: string | DownloadFunction, filename?: string, newTab?: boolean): void;
    commsReceived(table: HTMLElement, action: string, data: any): void;
}
export {};
