import * as i0 from '@angular/core';

interface SdExcelTemplate {
    fileName?: string;
    columns: SdExcelTemplateColumn[];
    sheets?: SdExcelSheet[];
}
interface SdExcelColumn {
    field: string;
    title: string;
    description?: string;
    width?: string;
}
interface SdExcelTemplateColumn extends SdExcelColumn {
    required?: boolean;
    color?: string;
    fontColor?: string;
    fill?: string;
}
interface SdExcelSheet<T = any> {
    name: string;
    items: T[];
    headers: {
        value: Extract<keyof T, string>;
        display: string;
    }[];
}
interface SdExcelExportOption<T = any> {
    columns: SdExcelTemplateColumn[];
    items: T[];
    fileName?: string;
    sheets?: SdExcelSheet[];
}

declare class SdExcelService {
    #private;
    constructor();
    generateTemplate: (template: SdExcelTemplate) => Promise<void>;
    exportCSV: (option: SdExcelExportOption) => Promise<void>;
    export: (option: SdExcelExportOption) => Promise<void>;
    upload: () => Promise<{
        items: Record<string, any>[];
        file: File | null;
    }>;
    parse: (file: File) => Promise<{
        items: Record<string, any>[];
        file: File | null;
    }>;
    static ɵfac: i0.ɵɵFactoryDeclaration<SdExcelService, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<SdExcelService>;
}

export { SdExcelService };
export type { SdExcelColumn, SdExcelExportOption, SdExcelSheet, SdExcelTemplate, SdExcelTemplateColumn };
