import type { SlideTemplateKey, SlideTemplateProps } from "./templates";
export type SlideTemplateFieldType = "text" | "textarea" | "lines" | "image" | "video" | "latex";
export interface SlideTemplateFieldDefinition {
    name: string;
    type: SlideTemplateFieldType;
    label: string;
    placeholder?: string;
    description?: string;
    required?: boolean;
}
export interface SlideTemplateDefinition {
    componentKey: SlideTemplateKey;
    label: string;
    description: string;
    displayMode: "square" | "fullscreen";
    supportedDisplayModes?: Array<"square" | "fullscreen">;
    fields: SlideTemplateFieldDefinition[];
}
export interface SlideTemplateAvailability {
    componentKey: SlideTemplateKey;
    label: string;
    description: string;
    displayMode: "square" | "fullscreen";
    fields: SlideTemplateFieldDefinition[];
}
export interface SlideTemplateDraft {
    props: SlideTemplateProps;
    latexString?: string;
}
export declare const slideTemplateDefinitions: Record<SlideTemplateKey, SlideTemplateDefinition>;
export declare const slideTemplateDefinitionList: SlideTemplateDefinition[];
export declare const slideTemplateAvailabilityList: SlideTemplateAvailability[];
export declare const slideTemplateAvailabilityByDisplayMode: {
    square: SlideTemplateAvailability[];
    fullscreen: SlideTemplateAvailability[];
};
export declare const slideTemplateDrafts: Record<SlideTemplateKey, SlideTemplateDraft>;
export declare function getSlideTemplateDefinition(componentKey: SlideTemplateKey): SlideTemplateDefinition;
export declare function getSlideTemplateAvailability(displayMode?: "square" | "fullscreen"): SlideTemplateAvailability[];
export declare function getSlideTemplateDraft(componentKey: SlideTemplateKey): SlideTemplateDraft;
