export type TemplateCategory = "BUSINESS" | "ECOMMERCE" | "PORTFOLIO" | "BLOG" | "LANDING" | "AGENCY" | "RESTAURANT" | "EDUCATION" | "HEALTHCARE" | "NONPROFIT" | "OTHER";
export type TemplatePricing = "FREE" | "PREMIUM" | "ENTERPRISE";
export type SectionType = "hero" | "about" | "services" | "features" | "testimonials" | "contact" | "pricing" | "blog" | "gallery" | "team" | "faq" | "cta" | "footer";
export interface SectionSettings {
    height?: "auto" | "screen" | "half" | string;
    alignment?: "left" | "center" | "right";
    animation?: string;
    background?: {
        type: "color" | "image" | "gradient";
        value: string;
        overlay?: boolean;
        overlayOpacity?: number;
    };
    padding?: {
        top?: string;
        bottom?: string;
        left?: string;
        right?: string;
    };
    margin?: {
        top?: string;
        bottom?: string;
    };
}
export interface ContactFormField {
    name: string;
    label: string;
    type: "text" | "email" | "tel" | "textarea" | "select" | "checkbox";
    required: boolean;
    placeholder?: string;
    options?: string[];
    validation?: {
        pattern?: string;
        minLength?: number;
        maxLength?: number;
    };
}
export interface ContactForm {
    fields: ContactFormField[];
    submitText?: string;
    successMessage?: string;
    errorMessage?: string;
    redirectUrl?: string;
}
export interface SocialLink {
    platform: "facebook" | "instagram" | "twitter" | "linkedin" | "youtube" | "tiktok";
    url: string;
    icon?: string;
}
export interface MenuItem {
    label: string;
    href: string;
    children?: MenuItem[];
    icon?: string;
    external?: boolean;
}
export interface LogoSettings {
    text?: string;
    image?: string;
    width?: string;
    height?: string;
}
export interface ColorPalette {
    primary: string;
    secondary: string;
    accent: string;
    background: string;
    foreground: string;
    muted: string;
    border: string;
    success?: string;
    warning?: string;
    error?: string;
}
export interface Typography {
    fontFamily: {
        sans: string[];
        heading: string[];
        mono?: string[];
    };
    fontSize: {
        xs: string;
        sm: string;
        base: string;
        lg: string;
        xl: string;
        "2xl": string;
        "3xl": string;
        "4xl": string;
        "5xl": string;
        "6xl"?: string;
    };
    fontWeight?: {
        light?: number;
        normal?: number;
        medium?: number;
        semibold?: number;
        bold?: number;
    };
    lineHeight?: {
        tight?: number;
        normal?: number;
        relaxed?: number;
    };
}
export interface TemplateStyles {
    colors: ColorPalette;
    typography: Typography;
    spacing: {
        section: string;
        container: string;
        grid?: string;
    };
    borderRadius: {
        sm: string;
        md: string;
        lg: string;
        xl: string;
        full?: string;
    };
    shadows?: {
        sm?: string;
        md?: string;
        lg?: string;
        xl?: string;
    };
    breakpoints?: {
        sm?: string;
        md?: string;
        lg?: string;
        xl?: string;
        "2xl"?: string;
    };
}
export interface SEOSettings {
    titleTemplate: string;
    defaultTitle: string;
    defaultDescription: string;
    defaultKeywords?: string[];
    ogImage?: string;
    twitterCard?: "summary" | "summary_large_image";
    jsonLd?: Record<string, unknown>;
}
export interface NavigationSettings {
    position: "top" | "left" | "right";
    sticky: boolean;
    transparent?: boolean;
    logo: LogoSettings;
    menuItems: MenuItem[];
    ctaButton?: {
        text: string;
        href: string;
        style?: "primary" | "secondary" | "outline";
    };
}
export interface FooterSettings {
    showSocial: boolean;
    socialLinks: SocialLink[];
    showNewsletter: boolean;
    newsletterTitle?: string;
    newsletterDescription?: string;
    copyright: string;
    links?: {
        title: string;
        items: MenuItem[];
    }[];
    address?: {
        street?: string;
        city?: string;
        country?: string;
        phone?: string;
        email?: string;
    };
}
export interface AnalyticsSettings {
    googleAnalytics?: string;
    facebookPixel?: string;
    hotjar?: string;
    mixpanel?: string;
    customScripts?: {
        head?: string[];
        body?: string[];
    };
}
export interface TemplateSettings {
    seo: SEOSettings;
    navigation: NavigationSettings;
    footer: FooterSettings;
    analytics: AnalyticsSettings;
    customCss?: string;
    customJs?: string;
    favicons?: {
        ico?: string;
        png16?: string;
        png32?: string;
        png192?: string;
        png512?: string;
    };
}
export type SectionContent = HeroContent | AboutContent | ServicesContent | TestimonialsContent | ContactContent | Record<string, unknown>;
export interface HeroContent {
    title: string;
    subtitle?: string;
    description?: string;
    ctaText?: string;
    ctaUrl?: string;
    secondaryCta?: {
        text: string;
        url: string;
    };
    backgroundImage?: string;
    backgroundVideo?: string;
    overlay?: boolean;
    overlayOpacity?: number;
}
export interface AboutContent {
    title: string;
    subtitle?: string;
    description: string;
    image?: string;
    features?: {
        icon: string;
        title: string;
        description: string;
    }[];
    stats?: {
        value: string;
        label: string;
        description?: string;
    }[];
}
export interface ServicesContent {
    title: string;
    subtitle?: string;
    services: {
        icon: string;
        title: string;
        description: string;
        features?: string[];
        price?: string;
        ctaText?: string;
        ctaUrl?: string;
    }[];
}
export interface TestimonialsContent {
    title: string;
    subtitle?: string;
    testimonials: {
        name: string;
        position?: string;
        company?: string;
        content: string;
        rating?: number;
        image?: string;
    }[];
}
export interface ContactContent {
    title: string;
    subtitle?: string;
    address?: string;
    phone?: string;
    email?: string;
    hours?: string;
    mapEmbed?: string;
    contactForm?: ContactForm;
}
export interface TemplateSection {
    type: SectionType;
    name: string;
    required: boolean;
    order: number;
    defaultContent: SectionContent;
    settings?: SectionSettings;
    customFields?: {
        name: string;
        label: string;
        type: "text" | "textarea" | "select" | "checkbox" | "image" | "color";
        options?: string[];
        description?: string;
    }[];
}
export interface SiteTemplate {
    id: string;
    name: string;
    slug: string;
    description?: string;
    category: TemplateCategory;
    pricing: TemplatePricing;
    sections: Record<string, TemplateSection>;
    styles: TemplateStyles;
    settings: TemplateSettings;
    features: string[];
    tags: string[];
    previewImage?: string;
    previewUrl?: string;
    demoUrl?: string;
    documentationUrl?: string;
    isActive: boolean;
    isPublic: boolean;
    version: string;
    author?: string;
    authorUrl?: string;
    license?: string;
    price?: number;
    downloads?: number;
    rating?: number;
    requiredPlugins?: string[];
    supportedLanguages?: string[];
    minVersion?: string;
    customizable?: {
        colors: boolean;
        fonts: boolean;
        layout: boolean;
        content: boolean;
    };
    changelog?: {
        version: string;
        date: string;
        changes: string[];
    }[];
    createdAt?: Date;
    updatedAt?: Date;
}
export interface TemplateUsage {
    templateId: string;
    siteId: string;
    installedAt: Date;
    customizations?: Record<string, unknown>;
    version: string;
}
export interface TemplateLibrary {
    templates: SiteTemplate[];
    categories: {
        id: TemplateCategory;
        name: string;
        description: string;
        icon: string;
    }[];
    featured: string[];
    popular: string[];
    recent: string[];
}
export interface TemplateFilters {
    category?: TemplateCategory;
    pricing?: TemplatePricing;
    features?: string[];
    tags?: string[];
    search?: string;
    sortBy?: "name" | "popularity" | "rating" | "date" | "price";
    sortOrder?: "asc" | "desc";
}
//# sourceMappingURL=templates.d.ts.map