/**
 * Recursively rewrite `#/definitions/<name>` pointers to `#/$defs/<name>`.
 * Returns the input unchanged if no rewrites are needed.
 */
export declare const normalizeRefs: (node: unknown) => unknown;
/**
 * Extract `$defs` and `definitions` from a JSON Schema,
 * returning { stripped, defs } where `stripped` is the schema without local
 * definitions and `defs` is a flat map of definition name → schema.
 */
export declare const hoistDefinitions: (schema: unknown) => {
    stripped: unknown;
    defs: Record<string, unknown>;
};
/**
 * Walk a schema and collect all $ref target names transitively.
 * e.g. "#/$defs/Address" → "Address", and if Address references City, both.
 */
export declare const collectRefs: (node: unknown, defs: ReadonlyMap<string, unknown>, found?: Set<string>) => Set<string>;
export declare const collectReferencedDefinitions: (roots: readonly unknown[], defs: ReadonlyMap<string, unknown>) => Record<string, unknown>;
/**
 * Re-attach only the referenced shared definitions into a schema,
 * so the caller gets a self-contained, usable JSON Schema.
 *
 * Assumes all `$ref` pointers and definitions have already been normalized
 * to `#/$defs/<name>` form at registration time.
 */
export declare const reattachDefs: (schema: unknown, defs: ReadonlyMap<string, unknown>) => unknown;
//# sourceMappingURL=schema-refs.d.ts.map