import { type Ref } from 'vue';
import CSVExport from '../CSVExport';
export type CSVRow = Record<string, unknown>;
export type FetchMethod = (params: Record<string, unknown>) => Promise<{
    items: CSVRow[];
    next: boolean;
}>;
interface CSVExportOptions {
    filename?: string;
    delimiter?: string;
}
export declare function useCSVExport({ selected }: {
    selected: Ref<number[]>;
}): {
    CSVExportInstance: Ref<{
        filename: string;
        fetchMethod: any;
        downloadProgress: {
            count: number;
        };
        delimiter: any;
        resetProgress: () => void;
        zippingProgress: {
            percent: number;
        };
        save: (csv: any) => void;
        stringify: (params?: {}) => Promise<string>;
        export: (params: any) => Promise<void>;
    }, CSVExport | {
        filename: string;
        fetchMethod: any;
        downloadProgress: {
            count: number;
        };
        delimiter: any;
        resetProgress: () => void;
        zippingProgress: {
            percent: number;
        };
        save: (csv: any) => void;
        stringify: (params?: {}) => Promise<string>;
        export: (params: any) => Promise<void>;
    }>;
    CSVDownloadProgress: import("vue").ComputedRef<number>;
    isCSVLoading: import("vue").ComputedRef<boolean>;
    isAnySelected: import("vue").ComputedRef<boolean>;
    initCSVExport: (fetchMethod: FetchMethod, options?: CSVExportOptions) => void;
    exportCSV: (exportParams?: Record<string, unknown>) => Promise<void>;
};
export {};
