import type { PublicCourse } from '../../../blocks/courses/shared/types';
export type ContentEntryLike = {
    id?: string | null;
    slug?: string | null;
    path?: string | null;
    _entryPath?: string | null;
} | null;
export type EntrySubrouteContextLike = {
    kind: 'course-run';
    run?: {
        courseId?: string | null;
    } | null;
} | {
    kind: 'event-occurrence';
} | null;
export type CourseDetailsSelection = {
    mode: 'runContext' | 'contentEntry' | 'slugOverride' | 'single' | 'none';
    selected: PublicCourse | null;
    scoped: PublicCourse[];
};
export declare function selectCourseDetails(args: {
    courses: PublicCourse[] | null | undefined;
    contentEntry: unknown;
    entrySubrouteContext?: unknown;
    courseSlug: string | null | undefined;
}): CourseDetailsSelection;
export declare function sortCourseSessions(course: PublicCourse): PublicCourse['sessions'];
