import { ModuleRef } from "@nestjs/core";
import { EntityManager } from 'typeorm';
import { CRUDService } from '../services/crud.service';
import { CreateExportTransactionDto } from '../dtos/create-export-transaction.dto';
import { Readable } from 'stream';
import { ExportTransaction } from '../entities/export-transaction.entity';
import { CsvService } from './csv.service';
import { ExcelService } from './excel.service';
import { SolidIntrospectService } from './solid-introspect.service';
import { UpdateExportTemplateDto } from '../dtos/update-export-template.dto';
import { ModelMetadataHelperService } from '../helpers/model-metadata-helper.service';
import { ExportTransactionRepository } from '../repository/export-transaction.repository';
import { FieldMetadataRepository } from '../repository/field-metadata.repository';
import { ModelMetadataRepository } from '../repository/model-metadata.repository';
export interface ExportTransactionFileInfo {
    exportStream: Readable;
    fileName: string;
    mimeType: string;
    exportTransaction: ExportTransaction;
}
export declare class ExportTransactionService extends CRUDService<ExportTransaction> {
    readonly entityManager: EntityManager;
    readonly repo: ExportTransactionRepository;
    readonly introspectService: SolidIntrospectService;
    readonly excelService: ExcelService;
    readonly csvService: CsvService;
    readonly fieldRepo: FieldMetadataRepository;
    readonly modelMetadataRepo: ModelMetadataRepository;
    readonly moduleRef: ModuleRef;
    private readonly modelMetadataHelperService;
    private logger;
    constructor(entityManager: EntityManager, repo: ExportTransactionRepository, introspectService: SolidIntrospectService, excelService: ExcelService, csvService: CsvService, fieldRepo: FieldMetadataRepository, modelMetadataRepo: ModelMetadataRepository, moduleRef: ModuleRef, modelMetadataHelperService: ModelMetadataHelperService);
    triggerExportSync(id: number, exportTransactionEntity: any, updateDto: UpdateExportTemplateDto, filters: any): Promise<ExportTransactionFileInfo>;
    triggerExportAsync(id: number, exportTransactionEntity: any, updateDto: UpdateExportTemplateDto, filters: any): Promise<void>;
    private loadExportTransaction;
    private updateExportTransaction;
    private getExportStreamDetails;
    private getExportStream;
    private storeExportStream;
    private getFileName;
    private getMimeType;
    private getDataRecordsFunc;
    toDto(data: Partial<CreateExportTransactionDto>): Promise<CreateExportTransactionDto>;
}
//# sourceMappingURL=export-transaction.service.d.ts.map