/**
 * Section-type registry — the single source of truth for the flat Page
 * Editor model. The admin editor re-exports this; the REST API and MCP
 * server read it for discovery + validation.
 *
 * Only types listed here can be added/created, so neither the Add Section
 * gallery nor an AI agent can produce a section without a working renderer
 * + inspector + schema ("no dead sections").
 */
import type { CustomSectionTypeInput, SectionScope, SectionsConfig, SectionTypeDef, SectionTypeId } from './types.js';
export declare const SECTION_TYPES: Record<SectionTypeId, SectionTypeDef>;
/** Ordered list for the Add Section gallery + discovery endpoints. */
export declare const SECTION_TYPE_LIST: SectionTypeDef[];
/**
 * Register (or replace) config-declared custom section types, application-wide.
 * Built-in types always win on an id collision, so a custom type can never
 * shadow a core type. Invalid entries (missing/blank id) are skipped.
 */
export declare function registerSectionTypes(inputs: CustomSectionTypeInput[] | undefined): void;
/** Remove all registered custom types. Called before re-registering at boot. */
export declare function resetCustomSectionTypes(): void;
/**
 * Resolve the effective custom section types from `config.sections`, honoring
 * the canonical `sections.types` key and falling back to the deprecated
 * `sections.customTypes` alias. `types` wins outright when present so the
 * precedence is predictable. Both server boot (handler-factory) and admin boot
 * (AdminRoot) call this so the two surfaces never diverge.
 */
export declare function resolveCustomSectionTypes(sections: SectionsConfig | undefined): CustomSectionTypeInput[] | undefined;
/** All known section types (built-ins first, then customs in registration order). */
export declare function getAllSectionTypes(): SectionTypeDef[];
export declare function getSectionType(id: string): SectionTypeDef | undefined;
/**
 * Section types available in a given editor context, in registry order.
 *
 * The Page editor passes `'page'`, the Post editor + Post Template editor
 * pass `'post'`, so each Add Section gallery shows only the types that make
 * sense (and have a working renderer) for that surface. Config-declared custom
 * types that include the scope are included.
 */
export declare function getSectionTypesForScope(scope: SectionScope): SectionTypeDef[];
/** Human label for a section type id, with a graceful fallback. */
export declare function sectionTypeLabel(id: string): string;
/** True when `id` is a registered, renderable section type (built-in or custom). */
export declare function isKnownSectionType(id: string): boolean;
//# sourceMappingURL=registry.d.ts.map