/**
 * Legacy adapter — bridges existing registerSerializer() calls into the new
 * plugin host registry.
 *
 * Phase 0: when a serializer is registered, we synthesize a minimal
 * BackendModule manifest (type, table, label, slugFrom, serializer,
 * systemPrompt) and push it into pluginHost.registerBackendModule(). The
 * other slots (backend.{ migrations, services, mcpServer, routes }) stay
 * empty — existing wiring (createMcpServers, app.use(routes), migrate.ts)
 * still mounts those independently.
 *
 * The systemPrompt fragments below mirror the current hardcoded behavior in
 * src/server/services/chat-context.ts so Phase 2 (prompt builder refactor)
 * keeps byte-identical output.
 *
 * As each entity migrates to its own vertical slice in Phase 3, the matching
 * `LEGACY_MANIFEST_DEFAULTS` entry below is deleted and the per-entity
 * plugin.ts file becomes the source of truth.
 */
import type { EntitySerializer } from '../../serialization/types.js';
/**
 * Called by serialization/registry.ts whenever a serializer registers itself.
 * If a manifest for this type already exists in the host, the serializer slot
 * is updated in-place. Otherwise, a synthetic BackendModule is built from
 * LEGACY_MANIFEST_DEFAULTS and pushed into the host.
 *
 * `section` is intentionally NOT registered as a plugin — sections are a
 * non-entity construct (M06). Their serializer stays in the legacy
 * SerializerRegistry path only.
 */
export declare function legacyRegisterServerSerializer(serializer: EntitySerializer<unknown>): void;
