/**
 * @fileoverview Structured Data Generation Utilities
 *
 * This module provides functions for generating JSON-LD structured data
 * for different content types according to Schema.org standards.
 */
import { StructuredData, ArticleStructuredData, PersonStructuredData, OrganizationStructuredData, WebsiteStructuredData, BreadcrumbStructuredData, ExtendedSEO, SEOConfig, ContentTypeResult } from '../../types/seo';
import { SanityPost, SanityPage } from '../../types/sanity';
/**
 * Options for generating structured data
 */
export interface StructuredDataGenerationOptions {
    seo: ExtendedSEO;
    content?: SanityPost | SanityPage | any;
    config: SEOConfig;
    url: string;
    contentAnalysis: ContentTypeResult;
    customStructuredData: StructuredData[];
    organization: OrganizationStructuredData;
}
/**
 * Generate all structured data for a page
 *
 * @param options - Structured data generation options
 * @returns Array of structured data objects
 */
export declare function generateStructuredData(options: StructuredDataGenerationOptions): StructuredData[];
/**
 * Generate website structured data
 *
 * @param config - SEO configuration
 * @param organization - Organization data
 * @returns Website structured data
 */
export declare function generateWebsiteData(config: SEOConfig, organization: OrganizationStructuredData): WebsiteStructuredData;
/**
 * Generate web page structured data
 *
 * @param seo - SEO data
 * @param config - SEO configuration
 * @param url - Page URL
 * @returns WebPage structured data
 */
export declare function generateWebPageData(seo: ExtendedSEO, config: SEOConfig, url: string): StructuredData;
/**
 * Generate article structured data
 *
 * @param content - Content data
 * @param seo - SEO data
 * @param config - SEO configuration
 * @param url - Article URL
 * @param organization - Organization data
 * @returns Article structured data
 */
export declare function generateArticleData(content: SanityPost | any, seo: ExtendedSEO, config: SEOConfig, url: string, organization: OrganizationStructuredData): ArticleStructuredData;
/**
 * Generate person structured data
 *
 * @param person - Person data
 * @param config - SEO configuration
 * @param url - Person page URL
 * @returns Person structured data
 */
export declare function generatePersonData(person: any, config: SEOConfig, url: string): PersonStructuredData;
/**
 * Generate breadcrumb structured data
 *
 * @param currentUrl - Current page URL
 * @param baseUrl - Base site URL
 * @returns Breadcrumb structured data
 */
export declare function generateBreadcrumbData(currentUrl: string, baseUrl: string): BreadcrumbStructuredData;
/**
 * Generate organization structured data
 *
 * @param config - SEO configuration
 * @returns Organization structured data
 */
export declare function generateOrganizationData(config: SEOConfig): OrganizationStructuredData;
/**
 * Validate structured data object
 *
 * @param data - Structured data to validate
 * @returns Validation result
 */
export declare function validateStructuredData(data: StructuredData): {
    isValid: boolean;
    errors: string[];
    warnings: string[];
};
/**
 * Escape JSON-LD for safe HTML embedding
 *
 * @param data - Structured data object
 * @returns Escaped JSON string
 */
export declare function escapeJsonLD(data: StructuredData): string;
//# sourceMappingURL=structured-data.d.ts.map