/**
 * Maps Neo4j node labels to schema.org types and builds JSON-LD payloads
 * suitable for inline `<script type="application/ld+json">` blocks on
 * rendered pages.
 *
 * Coverage matches Task 354 spec §1 — the seven page types that the
 * platform's typed nodes cover natively. Labels outside this set fall
 * through to a generic `schema:Thing` projection; callers should treat
 * a generic result as a doc gap, not a success.
 *
 * The mapper is deliberately strict: every emitted JSON-LD object names
 * `@context` and `@type` and carries `@id` when an `elementId` is
 * available. Missing required properties for the chosen type produce a
 * `MissingPropertyError`; callers surface this rather than emitting an
 * invalid block.
 */
export type JsonLdValue = string | number | boolean | null | JsonLdObject | JsonLdValue[];
export interface JsonLdObject {
    "@context"?: string;
    "@type": string;
    "@id"?: string;
    [property: string]: JsonLdValue | undefined;
}
export type SupportedPageType = "Organization" | "LocalBusiness" | "Person" | "Service" | "Product" | "Article" | "FAQPage" | "RealEstateListing" | "Event";
/** Inputs accepted by the mapper. */
export interface EntityInput {
    /** Source Neo4j label (or one of `SupportedPageType` directly). */
    label: string;
    /** Optional Neo4j elementId — emitted as `@id` when present. */
    elementId?: string;
    /** Flat property bag from the node. */
    properties: Record<string, unknown>;
}
export declare class MissingPropertyError extends Error {
    readonly schemaType: SupportedPageType | "Thing";
    readonly missing: string[];
    constructor(schemaType: SupportedPageType | "Thing", missing: string[]);
}
export declare function resolveSchemaType(label: string): SupportedPageType | "Thing";
/**
 * Build a JSON-LD object from a typed entity. Throws
 * `MissingPropertyError` when the resolved schema.org type's required
 * properties are not satisfied.
 */
export declare function buildJsonLd(input: EntityInput): JsonLdObject;
/** Render a JSON-LD object as a `<script>` block string. */
export declare function renderJsonLdScript(obj: JsonLdObject): string;
//# sourceMappingURL=schema-mapping.d.ts.map