/**
 * Embed-aware slot routing — static analysis pass.
 *
 * Walks every trait's `transitions[].effects` looking for `render-ui`
 * patterns whose tree contains `@trait.<Name>` string literals. Returns
 * the flat set of trait names that are referenced this way by some
 * sibling layout.
 *
 * Used by `<OrbPreview>` to route `applyServerEffects` — when an
 * embedded trait's render-ui effect arrives, the runtime updates that
 * trait's per-trait sidecar (`traitIndexRef`) only and skips the slot
 * write. The sibling layout owns the slot and embeds the trait's frame
 * via `<TraitFrame>`. Mirrors the compiled-path codegen which inlines
 * the atom views as JSX inside the layout's pattern, never having them
 * write a shared slot.
 *
 * The walker is a structural twin of
 * `packages/almadar-runtime/src/resolver/reference-resolver.ts`'s
 * `renameEventsInRenderUiConfig` — same recursive pattern shape, just
 * collecting `@trait.X` substrings instead of renaming events.
 *
 * @packageDocumentation
 */
import type { OrbitalSchema } from '@almadar/core';
/**
 * Build the flat set of trait names that are referenced via `@trait.X`
 * by at least one trait's render-ui in the resolved schema.
 *
 * Safe to call on the resolved (post-inline) schema. Memoize by
 * reference at the call site.
 */
export declare function collectEmbeddedTraits(schema: OrbitalSchema | undefined | null): ReadonlySet<string>;
