export type MetabolicLmsEducationResource = {
    id: string;
    type: "video" | "article" | "guide" | "webinar";
    title: string;
    category: string;
    categoryId: string;
    excerpt: string | null;
    thumbnailUrl: string | null;
    imageUrl: string | null;
    url: null;
    isFeatured: boolean;
    launchType: "lms_course";
    courseSlug: string;
    resourceKey: string;
};
export type MetabolicLmsBackendResource = {
    id?: unknown;
    type?: unknown;
    title?: unknown;
    category?: unknown;
    category_id?: unknown;
    categoryId?: unknown;
    excerpt?: unknown;
    thumbnail_url?: unknown;
    thumbnailUrl?: unknown;
    image_url?: unknown;
    imageUrl?: unknown;
    course_slug?: unknown;
    courseSlug?: unknown;
    resource_key?: unknown;
    resourceKey?: unknown;
    is_featured?: unknown;
    isFeatured?: unknown;
    launch_type?: unknown;
    launchType?: unknown;
};
export type FetchMetabolicLmsEducationResourcesOptions = {
    apiKey: string;
    fetchImpl?: typeof fetch;
    signal?: AbortSignal;
};
export type CreateMetabolicLmsLaunchOptions = {
    apiKey: string;
    externalUserId: string;
    email?: string | null;
    displayName?: string | null;
    courseSlug: string;
    resourceKey: string;
    fetchImpl?: typeof fetch;
    signal?: AbortSignal;
};
export type MetabolicLmsLaunchResult = {
    launchUrl: string;
    expiresAt: string | null;
    courseTitle: string | null;
};
export declare function getMetabolicLmsApiBaseUrl(): string;
export declare function getMetabolicLmsFrontendBaseUrl(): string;
export declare function buildMetabolicLmsLaunchUrl(launchToken: string): string;
export declare function normalizeMetabolicLmsEducationResource(raw: MetabolicLmsBackendResource): MetabolicLmsEducationResource | null;
export declare function mergeMetabolicLmsEducationResources<T extends {
    id: string;
}, U extends {
    id: string;
}>(ordinaryResources: T[], lmsResources: U[]): Array<T | U>;
export declare function fetchMetabolicLmsEducationResources({ apiKey, fetchImpl, signal, }: FetchMetabolicLmsEducationResourcesOptions): Promise<MetabolicLmsEducationResource[]>;
export declare function createMetabolicLmsLaunch({ apiKey, externalUserId, email, displayName, courseSlug, resourceKey, fetchImpl, signal, }: CreateMetabolicLmsLaunchOptions): Promise<MetabolicLmsLaunchResult>;
