/**
 * Interface for a Sri Lankan university
 */
interface University {
    id: string;
    name: string;
    code: string;
}

/**
 * Interface for a faculty within a Sri Lankan university
 */
interface Faculty {
    id: string;
    universityId: string;
    name: string;
}

/**
 * Interface for a degree program offered by a faculty
 */
interface Degree {
    id: string;
    universityId: string;
    facultyId: string;
    name: string;
}

/**
 * Re-export all types for easy import
 */

/**
 * Legacy data structure type for compatibility
 */
interface LegacyUniversityData {
    [university: string]: {
        [faculty: string]: string[];
    };
}

/**
 * Get all universities in Sri Lanka
 * @returns Array of all universities with full data
 */
declare function getAllUniversities(): University[];
/**
 * Get university by name or ID (case-insensitive)
 * @param nameOrId University name or ID
 * @returns University object or undefined if not found
 */
declare function getUniversity(nameOrId: string): University | undefined;
/**
 * Validate if university exists
 * @param nameOrId University name or ID
 * @returns True if university exists, false otherwise
 */
declare function validateUniversity(nameOrId: string): boolean;

/**
 * Get all faculties in Sri Lankan universities
 * @returns Array of all faculties
 */
declare function getAllFaculties(): Faculty[];
/**
 * Get faculties in a specific university
 * @param universityNameOrId University name or ID (case-insensitive)
 * @returns Array of faculties or empty array if university not found
 */
declare function getFacultiesByUniversity(universityNameOrId: string): Faculty[];
/**
 * Get faculty by ID or name within a specific university
 * @param universityNameOrId University name or ID (case-insensitive)
 * @param facultyNameOrId Faculty name or ID (case-insensitive)
 * @returns Faculty object or undefined if not found
 */
declare function getFaculty(universityNameOrId: string, facultyNameOrId: string): Faculty | undefined;
/**
 * Validate if faculty exists in a university
 * @param universityNameOrId University name or ID
 * @param facultyNameOrId Faculty name or ID
 * @returns True if faculty exists in the university, false otherwise
 */
declare function validateFaculty(universityNameOrId: string, facultyNameOrId: string): boolean;

/**
 * Get all degrees in Sri Lankan universities
 * @returns Array of all degrees
 */
declare function getAllDegrees(): Degree[];
/**
 * Get degrees offered by a specific faculty in a university
 * @param universityNameOrId University name or ID (case-insensitive)
 * @param facultyNameOrId Faculty name or ID (case-insensitive)
 * @returns Array of degrees or empty array if university or faculty not found
 */
declare function getDegreesByFaculty(universityNameOrId: string, facultyNameOrId: string): Degree[];

/**
 * Legacy data structure for backward compatibility with v1.x
 * Complete list of all universities, faculties and degree programs
 */
declare const legacyData: LegacyUniversityData;

declare function getUniversities(): string[];
declare function getFaculties(university: string): string[];
declare function getDegrees(university: string, faculty: string): string[];

declare const legacyAPI: {
    getUniversities: typeof getUniversities;
    getFaculties: typeof getFaculties;
    getDegrees: typeof getDegrees;
    universities: LegacyUniversityData;
};

export { Degree, Faculty, University, legacyAPI as default, getAllDegrees, getAllFaculties, getAllUniversities, getDegrees, getDegreesByFaculty, getFaculties, getFacultiesByUniversity, getFaculty, getUniversities, getUniversity, legacyData as universities_data, validateFaculty, validateUniversity };
