/**
 * Field-schema introspection for the `GET /api/cms/collections` discovery
 * endpoint (roadmap WS-B4).
 *
 * Reduces a collection's field map to a compact, **recursive** summary an
 * agent can plan a create/update against — including `array` element
 * subfields and `blocks` variant subfields — WITHOUT shipping the full
 * runtime validators, hooks, or access functions (those can carry closure
 * state and must never reach the unauthenticated discovery surface).
 *
 * The shape is intentionally additive over the flat `{ name, type, required }`
 * summary: relationship targets, select options, and nested subfield schemas
 * appear only when present, so existing consumers keep working.
 */
/** A single field reduced to agent-plannable metadata. */
export interface FieldSummary {
    name: string;
    type: string;
    required: boolean;
    /** Relationship target collection(s) — for slug→id resolution. */
    relationTo?: string | string[];
    /** True for multi-value relationship / select fields. */
    hasMany?: boolean;
    /** `select` options exactly as the config provides them (label/value objects or bare strings). */
    options?: unknown[];
    /** `array` element subfields (recursive). */
    fields?: FieldSummary[];
    /** `array` row bounds, when configured. */
    minRows?: number;
    maxRows?: number;
    /** `blocks` variants, each with its own subfield schema (recursive). */
    blocks?: BlockSummary[];
}
/** A `blocks` field variant reduced to its slug, label, and subfield schema. */
export interface BlockSummary {
    slug: string;
    label?: string;
    fields: FieldSummary[];
}
/**
 * Summarize a collection's `fields` map into the recursive {@link FieldSummary}
 * array used by the discovery endpoint. Safe on any input — a non-object map
 * (or a missing one) yields `[]`.
 */
export declare function summarizeCollectionFields(fields: unknown, depth?: number): FieldSummary[];
//# sourceMappingURL=collection-introspection.d.ts.map