type FestivalCardElementType = 'text' | 'image';
interface FestivalCardElementBase {
    id: string;
    type: FestivalCardElementType;
    x: number;
    y: number;
    width?: number;
    height?: number;
}
interface FestivalCardTextElement extends FestivalCardElementBase {
    type: 'text';
    content: string;
    color?: string;
    fontSize?: number;
    fontWeight?: number;
    align?: 'left' | 'center' | 'right';
}
interface FestivalCardImageElement extends FestivalCardElementBase {
    type: 'image';
    src: string;
    alt?: string;
    borderRadius?: number;
    fit?: 'cover' | 'contain';
    isBackground?: boolean;
}
type FestivalCardElement = FestivalCardTextElement | FestivalCardImageElement;
interface FestivalCardPage {
    id: string;
    title?: string;
    elements: FestivalCardElement[];
    background?: {
        color?: string;
        image?: string;
    };
}
interface FestivalCardAudioConfig {
    src: string;
    loop?: boolean;
    autoPlay?: boolean;
    volume?: number;
}
interface FestivalCardConfig {
    id?: string;
    name?: string;
    theme?: 'winter' | 'spring' | 'custom';
    coverTitle?: string;
    coverSubtitle?: string;
    pages: FestivalCardPage[];
    backgroundMusic?: FestivalCardAudioConfig;
    background?: {
        colorA?: string;
        colorB?: string;
    };
}
interface FestivalCardConfigSummary {
    id: string;
    name?: string;
}
interface FestivalCardDbAdapter {
    listConfigs?(): Promise<FestivalCardConfigSummary[]>;
    getConfig(id: string): Promise<FestivalCardConfig | null>;
    saveConfig(id: string, config: FestivalCardConfig): Promise<void>;
    deleteConfig?(id: string): Promise<void>;
}
interface FestivalCardServiceOptions {
    db?: FestivalCardDbAdapter;
}

export type { FestivalCardConfig as F, FestivalCardElementType as a, FestivalCardElementBase as b, FestivalCardTextElement as c, FestivalCardImageElement as d, FestivalCardElement as e, FestivalCardPage as f, FestivalCardAudioConfig as g, FestivalCardConfigSummary as h, FestivalCardDbAdapter as i, FestivalCardServiceOptions as j };
