import { Subscription } from 'rxjs';
import { ngeoCsvEncoding, ngeoCsvExtension, ngeoCsvIncludeHeader, ngeoCsvQuote, ngeoCsvSeparator } from 'gmfapi/store/config';
/**
 * Definition for grid columns.
 */
type GridColumnDef = {
    /**
     * Name of a column.
     */
    name: string;
};
export declare class DownloadCsvService {
    encoding_: ngeoCsvEncoding;
    extension_: ngeoCsvExtension;
    includeHeader_: ngeoCsvIncludeHeader;
    quote_: ngeoCsvQuote;
    separator_: ngeoCsvSeparator;
    subscriptions: Subscription[];
    constructor();
    /**
     * Generate a CSV.
     * @param {Object<string, string>[]} data Entries/objects to include in the CSV.
     * @param {GridColumnDef[]} columnDefs Column definitions.
     * @returns {string} The CSV file as string.
     */
    generateCsv(data: {
        [x: string]: string | number;
    }[], columnDefs: GridColumnDef[]): string;
    /**
     * @param {string[]} values Values.
     * @returns {string} CSV row.
     */
    getRow_(values: (string | number)[]): string;
    /**
     * Generate a CSV and start a download with the generated file.
     * @param {Object<string, string>[]} data Entries/objects to include in the CSV.
     * @param {GridColumnDef[]} columnDefs Column definitions.
     * @param {string} fileName The CSV file name, without the extension.
     */
    startDownload(data: {
        [x: string]: string | number;
    }[], columnDefs: GridColumnDef[], fileName: string): void;
}
declare const downloadCsvService: DownloadCsvService;
export default downloadCsvService;
