export declare const slideTemplateKeys: readonly ["SquareYellow", "SquareVideo", "FullscreenSplit", "FullscreenVideo", "FullscreenVideoTitle", "FullscreenVideoCenterCaption", "EquationFocus", "QuoteImage", "ChartSingle", "ProcessFlow", "DefinitionCard", "GlitchComponentFrame"];
export type SlideTemplateKey = (typeof slideTemplateKeys)[number];
export type SlideTemplateVersion = 1;
export interface SquareYellowData {
    header: string;
    imageSrc: string;
    imageAlt: string;
}
export interface SquareVideoData {
    header: string;
    videoSrc: string;
    posterSrc?: string;
}
export interface FullscreenSplitData {
    eyebrow?: string;
    title: string;
    body: string;
    imageSrc: string;
    imageAlt: string;
    imagePosition?: "left" | "right";
}
export interface FullscreenVideoData {
    header?: string;
    videoSrc: string;
    posterSrc?: string;
    caption?: string;
}
export interface FullscreenVideoTitleData {
    title?: string;
    videoSrc: string;
    posterSrc?: string;
}
export interface FullscreenVideoCenterCaptionData {
    caption?: string;
    videoSrc: string;
    posterSrc?: string;
}
export interface EquationFocusData {
    header?: string;
    eyebrow?: string;
    title: string;
    annotation?: string;
}
export interface QuoteImageData {
    eyebrow?: string;
    quote: string;
    attribution?: string;
    imageSrc: string;
    imageAlt: string;
    imagePosition?: "left" | "right";
}
export interface ChartSinglePoint {
    label: string;
    value: number;
    color?: string;
}
export interface ChartSingleData {
    header?: string;
    eyebrow?: string;
    title: string;
    body?: string;
    points: ChartSinglePoint[];
}
export interface ProcessFlowData {
    eyebrow?: string;
    title: string;
    steps: string[];
}
export interface DefinitionCardData {
    header?: string;
    eyebrow?: string;
    term: string;
    definition: string;
    example?: string;
}
export interface GlitchComponentFrameData {
    header?: string;
    componentId: string;
    componentUrl?: string;
    caption?: string;
}
export interface SquareYellowContract {
    componentKey: "SquareYellow";
    version: 1;
    props: SquareYellowData;
}
export interface SquareVideoContract {
    componentKey: "SquareVideo";
    version: 1;
    props: SquareVideoData;
}
export interface FullscreenSplitContract {
    componentKey: "FullscreenSplit";
    version: 1;
    props: FullscreenSplitData;
}
export interface FullscreenVideoContract {
    componentKey: "FullscreenVideo";
    version: 1;
    props: FullscreenVideoData;
}
export interface FullscreenVideoTitleContract {
    componentKey: "FullscreenVideoTitle";
    version: 1;
    props: FullscreenVideoTitleData;
}
export interface FullscreenVideoCenterCaptionContract {
    componentKey: "FullscreenVideoCenterCaption";
    version: 1;
    props: FullscreenVideoCenterCaptionData;
}
export interface EquationFocusContract {
    componentKey: "EquationFocus";
    version: 1;
    props: EquationFocusData;
    latexString: string;
}
export interface QuoteImageContract {
    componentKey: "QuoteImage";
    version: 1;
    props: QuoteImageData;
}
export interface ChartSingleContract {
    componentKey: "ChartSingle";
    version: 1;
    props: ChartSingleData;
}
export interface ProcessFlowContract {
    componentKey: "ProcessFlow";
    version: 1;
    props: ProcessFlowData;
}
export interface DefinitionCardContract {
    componentKey: "DefinitionCard";
    version: 1;
    props: DefinitionCardData;
}
export interface GlitchComponentFrameContract {
    componentKey: "GlitchComponentFrame";
    version: 1;
    props: GlitchComponentFrameData;
}
export type SupportedSlideContract = SquareYellowContract | SquareVideoContract | FullscreenSplitContract | FullscreenVideoContract | FullscreenVideoTitleContract | FullscreenVideoCenterCaptionContract | EquationFocusContract | QuoteImageContract | ChartSingleContract | ProcessFlowContract | DefinitionCardContract | GlitchComponentFrameContract;
export type SlideTemplateProps = SupportedSlideContract["props"];
