import type { LessonFiltersData } from '../../types/lessonFilters';
import type { Lesson } from '../../types/lessons';
import type { LessonBackendFiltersFormat } from './RecommendedLessonCreate.types';
import { RecommendedClassDraftType } from './RecommendedLessonCreate.types';
/**
 * Knowledge area interface for subject lookup
 */
export interface KnowledgeArea {
    id: string;
    name: string;
}
/**
 * Preview lesson type for LessonPreview component
 * Includes media fields mapped from API response
 */
export interface PreviewLesson extends Lesson {
    position?: number;
    videoSrc?: string;
    videoPoster?: string;
    videoSubtitles?: string;
    podcastSrc?: string;
    podcastTitle?: string;
}
/**
 * Convert LessonFiltersData to backend format
 *
 * @param filters - LessonFiltersData to convert, can be null
 * @returns LessonBackendFiltersFormat object with converted filter data
 */
export declare function convertFiltersToBackendFormat(filters: LessonFiltersData | null): LessonBackendFiltersFormat;
/**
 * Convert backend filters format to LessonFiltersData
 *
 * @param backendFilters - LessonBackendFiltersFormat to convert, can be null
 * @returns LessonFiltersData object with converted filter data, or null if input is null
 */
export declare function convertBackendFiltersToLessonFiltersData(backendFilters: LessonBackendFiltersFormat | null): LessonFiltersData | null;
/**
 * Get subject name from subjectId by searching in knowledge areas
 *
 * @param subjectId - The subject ID to look up
 * @param knowledgeAreas - Array of knowledge areas to search in
 * @returns The subject name if found, null otherwise
 */
export declare function getSubjectName(subjectId: string | null, knowledgeAreas: KnowledgeArea[]): string | null;
/**
 * Get goal draft type label using object literal mapping
 *
 * @param type - RecommendedClassDraftType enum value
 * @returns Label string for the goal draft type
 */
export declare function getGoalDraftTypeLabel(type: RecommendedClassDraftType): string;
/**
 * Generate recommended lesson title based on type, subject, first lesson, and date
 *
 * @param type - RecommendedClassDraftType enum value
 * @param subjectId - Subject ID to get name from
 * @param knowledgeAreas - Array of knowledge areas for subject lookup
 * @param lessons - Array of lessons (optional, to get first lesson name)
 * @returns Generated title string
 */
export declare function generateTitle(type: RecommendedClassDraftType, subjectId: string | null, knowledgeAreas: KnowledgeArea[], lessons?: Lesson[]): string;
/**
 * Convert RecommendedClassDraftType to the format used in URL
 *
 * @param type - RecommendedClassDraftType enum value
 * @returns String representation for URL (rascunho or modelo)
 */
export declare function getTypeFromUrl(type: RecommendedClassDraftType): string;
/**
 * Convert string from URL to RecommendedClassDraftType
 *
 * @param type - String from URL (rascunho or modelo)
 * @returns RecommendedClassDraftType enum value
 */
export declare function getTypeFromUrlString(type: string | undefined): RecommendedClassDraftType;
/**
 * Convert Lesson to PreviewLesson format
 * Maps API fields (urlVideo, urlPodCast, etc.) to component-expected fields (videoSrc, podcastSrc, etc.)
 *
 * @param lesson - Lesson object to convert
 * @returns PreviewLesson object with converted data
 */
export declare function convertLessonToPreview(lesson: Lesson): PreviewLesson;
//# sourceMappingURL=RecommendedLessonCreate.utils.d.ts.map