import type { StudioBreakpoint } from "../utils/responsivePresentation"; /** Versioned independently so Atlas can reject an unsupported authoring contract. */ export declare const AUTHORING_CONTRACT_VERSION = 1; /** Versioned independently from component metadata for compiler/Atlas diagnostics. */ export declare const DIAGNOSTIC_CONTRACT_VERSION = 1; export declare const AUTHORING_ROLES: readonly ["content", "action", "layout", "section", "media", "motion", "navigation", "conversion", "data"]; export declare const AUTHORING_CONTEXTS: readonly ["property", "site-buildings", "runtime-data"]; export declare const PERFORMANCE_COSTS: readonly ["low", "medium", "high"]; export declare const DIAGNOSTIC_SEVERITIES: readonly ["info", "warning", "error"]; export type AuthoringRole = (typeof AUTHORING_ROLES)[number]; export type AuthoringContext = (typeof AUTHORING_CONTEXTS)[number]; export type PerformanceCost = (typeof PERFORMANCE_COSTS)[number]; export type DiagnosticSeverity = (typeof DIAGNOSTIC_SEVERITIES)[number]; /** * Guidance consumed by Atlas and semantic validators. The runtime deliberately * ignores this block: it constrains authoring without changing stored site trees. */ export interface ComponentAuthoringSpec { /** Search/composition roles used to select components for a requested section. */ roles: AuthoringRole[]; /** Prop names that accept breakpoint-specific values. */ responsiveProps?: string[]; /** Component types that may directly contain this component. Omitted = unspecified. */ allowedParents?: string[]; /** Component types that should not be composed with this component. Link restricts descendants only. */ incompatibleWith?: string[]; /** Context that must be available before Atlas inserts the component. */ requiredContexts?: AuthoringContext[]; /** Coarse page-budget signal; exact byte/runtime checks remain compiler-owned. */ performanceCost?: PerformanceCost; /** Stable repair identifiers that Atlas can map to existing design operations. */ repairHints?: string[]; /** Versioned recipe identifiers recommended for this component. */ recommendedRecipes?: string[]; } /** * Opaque-compatible representation of the existing Studio design-operation * contract. `type` is required; operation-specific fields pass through unchanged. */ export interface AuthoringSuggestedOperation { type: string; [field: string]: unknown; } /** Shared diagnostic envelope emitted by validators and consumed by Atlas/editor UI. */ export interface AuthoringDiagnostic { code: string; severity: DiagnosticSeverity; message: string; nodeId?: string; path?: string; breakpoint?: StudioBreakpoint; suggestedOperations?: AuthoringSuggestedOperation[]; } //# sourceMappingURL=authoringContract.d.ts.map