import { OnInit, AfterViewInit, EventEmitter, ChangeDetectorRef } from '@angular/core';
import { SdNotifyService } from '@sd-angular/core/notify';
import { SdLoadingService } from '@sd-angular/core/loading';
import { SdTranslateService } from '@sd-angular/core/translate';
import { MatSelectionList } from '@angular/material/list';
import { SdGridMaterialOption } from '../../models/grid-option.model';
import { SdModal } from '@sd-angular/core/modal';
import { SdExportFile, SdExportService, SdExportColumn } from '@sd-angular/core/export';
import { SdGroupExport } from '../../models/grid-export.model';
import { FormGroup } from '@angular/forms';
import { SdGridConfigurationResult } from '../../models/grid-config.model';
export declare class SdPopupExport implements OnInit, AfterViewInit {
    #private;
    private ref;
    private loadingService;
    private exportService;
    private notifyService;
    private translateService;
    gridOption: SdGridMaterialOption;
    columns: SdExportColumn[];
    groups: SdGroupExport[];
    templateName: string;
    enableCreating: boolean;
    modal: SdModal;
    listGroups: MatSelectionList;
    selected: {
        [key: string]: boolean;
    };
    files: SdExportFile[];
    selectedGroup: SdGroupExport;
    export: EventEmitter<{
        file: SdExportFile;
        columns: SdExportColumn[];
        isCSV?: boolean;
    }>;
    form: FormGroup;
    set _gridOption(option: SdGridMaterialOption);
    configuration: SdGridConfigurationResult;
    private get key();
    private get gridColumns();
    private get additionalColumns();
    constructor(ref: ChangeDetectorRef, loadingService: SdLoadingService, exportService: SdExportService, notifyService: SdNotifyService, translateService: SdTranslateService);
    ngOnInit(): void;
    ngAfterViewInit(): void;
    open: () => Promise<void>;
    exportDefault: () => void;
    exportCSV: () => void;
    loadFiles: (group?: string) => Promise<void>;
    generateTemplate: () => Promise<void>;
    generateAndUploadTemplate: (fileName?: string) => Promise<{
        filePath: any;
        fileName: any;
    }>;
    onExport: (file: SdExportFile) => void;
    uploadTemplate: () => Promise<void>;
    removeFile: (file: SdExportFile) => void;
    createTemplate: () => Promise<void>;
    onChangeGroup: () => void;
    validatorTemplateName: (val: string) => string;
}
