/** * Generate schema.org `Course` JSON-LD. * * Accepts metadata for a course and optional `CourseInstance` objects * including offers and locations. Provider can be a string or a structured * object with `logo` support. Only provided fields are emitted. * * See `CourseSchema` and `CourseInstance` for field details. * @returns A JSON-LD compatible `Course` object */ interface CourseProvider { name: string; url?: string; logo?: { url: string; width?: number; height?: number; }; } interface CourseImage { url: string; width?: number; height?: number; } interface CourseInstanceOffer { price?: string | number; priceCurrency?: string; availability?: string; url?: string; } interface CourseInstance { name?: string; description?: string; courseMode?: string; startDate?: string; endDate?: string; location?: string; offers?: CourseInstanceOffer | CourseInstanceOffer[]; } interface CourseSchema { name: string; description?: string; courseCode?: string; educationalCredentialAwarded?: string; provider: string | CourseProvider; image?: string | CourseImage | Array; url?: string; hasCourseInstance?: CourseInstance | CourseInstance[]; keywords?: string[]; } declare const generateCourseSchema: ({ name, description, courseCode, educationalCredentialAwarded, provider, image, url, hasCourseInstance, keywords, }: CourseSchema) => any; export { generateCourseSchema };