import type { Slide, SlideTheme } from '../../types/slides'; export declare const TEMPLATE_LIBRARY_KEY = "fika:myna:personal-templates:v1"; export declare const TEMPLATE_LIBRARY_LIMIT: number; export interface PersonalTemplate { id: string; name: string; width: number; height: number; slides: Slide[]; theme: SlideTheme; createdAt: number; updatedAt: number; lastUsedAt: number; favorite: boolean; } export interface LibraryStorage { getItem(key: string): string | null; setItem(key: string, value: string): void; } export declare function readTemplateLibrary(storage: LibraryStorage): PersonalTemplate[]; export declare function writeTemplateLibrary(storage: LibraryStorage, templates: PersonalTemplate[]): void; /** Materialize session-only media before persisting. Remote links remain links, visibly disclosed in the UI. */ export declare function portableTemplateSlides(slides: readonly Slide[]): Promise; /** Clone every identity and reference. Never re-use IDs from a stored design. */ export declare function instantiateTemplate(template: PersonalTemplate, width: number, height: number): Slide[]; export declare function rankTemplates(templates: PersonalTemplate[], width: number, height: number, sort?: 'match' | 'recent'): PersonalTemplate[];