import { Repository } from 'typeorm';
import { ContentModule } from './entities/content-module.entity';
import { Podcast } from '../podcasts/entities/podcast.entity';
import { Ebook } from '../ebooks/entities/ebook.entity';
import { Theme } from '../themes/entities/theme.entity';
import { Speaker } from '../speakers/entities/speaker.entity';
import { Program } from '../program/entities/program.entity';
import { CreateContentModuleDto } from './dto/create-content-module.dto';
import { UpdateContentModuleDto } from './dto/update-content-module.dto';
import { ListContentModulesQueryDto } from './dto/list-content-modules-query.dto';
import { SatisfactionFormsService } from '../satisfaction-forms/satisfaction-forms.service';
export declare class ContentModulesService {
    private readonly moduleRepository;
    private readonly podcastRepository;
    private readonly ebookRepository;
    private readonly themeRepository;
    private readonly speakerRepository;
    private readonly programRepository;
    private readonly satisfactionFormsService;
    constructor(moduleRepository: Repository<ContentModule>, podcastRepository: Repository<Podcast>, ebookRepository: Repository<Ebook>, themeRepository: Repository<Theme>, speakerRepository: Repository<Speaker>, programRepository: Repository<Program>, satisfactionFormsService: SatisfactionFormsService);
    private readonly moduleRelations;
    findAll(query: ListContentModulesQueryDto): Promise<{
        data: ContentModule[];
        total: number;
    }>;
    findFeatured(): Promise<ContentModule | null>;
    findOne(id: string): Promise<ContentModule>;
    private resolveSpeakers;
    private assertThemeExists;
    create(dto: CreateContentModuleDto): Promise<ContentModule>;
    update(id: string, dto: UpdateContentModuleDto): Promise<ContentModule>;
    remove(id: string): Promise<void>;
}
