import { ModuleRef } from "@nestjs/core";
import { EntityManager } from 'typeorm';
import { ConfigService } from '@nestjs/config';
import { CRUDService } from '../services/crud.service';
import { DiskFileService, S3FileService } from '../services/file';
import { BasicFilterDto } from '../dtos/basic-filters.dto';
import { Media } from '../entities/media.entity';
import { FieldMetadataRepository } from '../repository/field-metadata.repository';
import { MediaStorageProviderMetadataRepository } from '../repository/media-storage-provider-metadata.repository';
import { MediaRepository } from '../repository/media.repository';
import { ModelMetadataRepository } from '../repository/model-metadata.repository';
export declare class MediaService extends CRUDService<Media> {
    readonly configService: ConfigService;
    readonly diskFileService: DiskFileService;
    readonly s3FileService: S3FileService;
    readonly entityManager: EntityManager;
    readonly repo: MediaRepository;
    private readonly modelMetadataRepo;
    private readonly mediaStorageProviderMetadataRepo;
    private readonly fieldMetadataRepo;
    readonly moduleRef: ModuleRef;
    constructor(configService: ConfigService, diskFileService: DiskFileService, s3FileService: S3FileService, entityManager: EntityManager, repo: MediaRepository, modelMetadataRepo: ModelMetadataRepository, mediaStorageProviderMetadataRepo: MediaStorageProviderMetadataRepository, fieldMetadataRepo: FieldMetadataRepository, moduleRef: ModuleRef);
    find(basicFilterDto: BasicFilterDto, solidRequestContext?: any): Promise<{
        meta: {
            totalRecords: number;
        };
        groupMeta: any[];
        groupRecords: any[];
        records?: undefined;
    } | {
        meta: {
            totalRecords: number;
            currentPage: number;
            nextPage: number;
            prevPage: number;
            totalPages: number;
            perPage: number;
        };
        records: Media[];
        groupMeta?: undefined;
        groupRecords?: undefined;
    }>;
    upload(createDto: any, files: Array<Express.Multer.File>): Promise<any[]>;
    remove(id: number): Promise<Media>;
    private getFullFilePathForDisk;
    private getFileName;
}
//# sourceMappingURL=media.service.d.ts.map