export interface ExcelTemplate { fileName?: string; columns: ExcelTempateColumn[]; sheets?: { name: string; items: any[]; fields: string[]; }[]; } export interface ExcelTempateColumn { field: string; title: string; required?: boolean; color?: string; width?: string; description?: string; } export interface ExcelConfig { removable?: boolean; name?: string; fullPath?: string; } export interface ExcelConfiguration { generateTemplate(excelTemplate: ExcelTemplate): Promise<{ filePath: string; }>; generateAndUploadTemplate(key: string, excelTemplate: ExcelTemplate): Promise<{ fileName: string; filePath: string; }>; uploadTemplate(key?: string, validator?: (fileName: string) => string): Promise; downloadTemplate(filePath: string, fileName?: string): Promise; generateExcelDataByTemplate(filePath: string, columns: any[], items: any[], fileName?: string): Promise<{ filePath: string; }>; getFiles(key?: string): Promise; remove(key?: string, name?: string): Promise; }