/**
 * Structured-data defaults for content documents.
 *
 * Public pages already emit JSON-LD via `composePageMeta()` at render time, but
 * the SEO audit and Content SEO list read persisted `structuredDataType` on the
 * document. This module keeps those in sync with the same resolution order the
 * page build / `/resolve` path uses.
 */
import type { ActuateCMSConfig, CollectionDefinition } from '../config/types.js';
/** True when the collection renders a public page or post. */
export declare function isPublicContentCollection(collectionDef: CollectionDefinition | null | undefined): boolean;
/**
 * Resolve the Schema.org type a document will emit — same precedence as
 * `composePageMeta()`.
 */
export declare function resolveEffectiveSchemaType(params: {
    collection: string;
    data?: Record<string, unknown> | null;
    structuredData?: Record<string, unknown> | null;
    collectionDef?: CollectionDefinition | null;
}): string;
/** Keep `structuredDataType` and `schemaType` in sync when either is set. */
export declare function syncSchemaTypeFields(fields: Record<string, unknown>): Record<string, unknown>;
/** Stamp `structuredDataType` / `schemaType` on document data when unset. */
export declare function applyStructuredDataFieldsToData(collection: string, data: Record<string, unknown>, collectionDef?: CollectionDefinition | null, structuredData?: Record<string, unknown> | null): Record<string, unknown>;
/**
 * Compose JSON-LD for a published document when the `structuredData` column is
 * empty. Respects explicit overrides already stored on the column.
 */
export declare function composeStructuredDataForPublish(params: {
    collection: string;
    doc: {
        id: string;
        slug?: string | null;
        data: Record<string, unknown>;
        publishedAt?: Date | string | null;
        updatedAt?: Date | string | null;
        structuredData?: Record<string, unknown> | null;
    };
    config: Pick<ActuateCMSConfig, 'seo' | 'i18n' | 'collections'> | null | undefined;
}): Record<string, unknown> | null;
export interface ContentStructuredDataPrep {
    data: Record<string, unknown>;
    structuredData?: Record<string, unknown> | null;
}
/**
 * Apply structured-data defaults on content document writes. When publishing,
 * also materialize JSON-LD on the document column for audits/API consumers.
 */
export declare function prepareContentStructuredData(collection: string, data: Record<string, unknown>, options?: {
    collectionDef?: CollectionDefinition | null;
    config?: Pick<ActuateCMSConfig, 'seo' | 'i18n' | 'collections'> | null;
    existingStructuredData?: Record<string, unknown> | null;
    doc?: {
        id: string;
        slug?: string | null;
        publishedAt?: Date | string | null;
        updatedAt?: Date | string | null;
    };
    publishing?: boolean;
}): ContentStructuredDataPrep;
//# sourceMappingURL=schema-sync.d.ts.map