export type GuidanceStatus = 'experimental' | 'stable' | 'deprecated' | 'removed'; export interface GuidanceReference { label: string; path: string; } export interface TokenGuidancePrinciple { id: `principle:${string}`; summary: string; } export interface ColorIntentGuidance { id: `intent:${string}`; status: GuidanceStatus; optional: boolean; summary: string; useWhen: string[]; avoidWhen: string[]; precedence?: string[]; } export interface TokenFamilyAgentEntry { id: `token-family:${string}`; kind: 'token-family'; category: 'color' | 'dimension' | 'typography' | 'effect'; audience: 'general' | 'specialized' | 'foundation'; status: GuidanceStatus; summary: string; tokenPatterns: string[]; selectionRole: 'direct' | 'recipe-part' | 'last-resort'; useWhen: string[]; avoidWhen: string[]; constraints: string[]; recipes?: `token-recipe:${string}`[]; accessibility?: string[]; references?: GuidanceReference[]; } export interface TokenRecipeRole { id: string; summary: string; tokenPatterns?: string[]; literal?: boolean; required: boolean; } export interface TokenRecipeAssignment { role: string; property: string; token?: string; tokenPattern?: string; value?: string; } export interface TokenRecipeVariant { id: string; label: string; modifier?: string; when?: string; assignments: TokenRecipeAssignment[]; notes?: string[]; } export interface TokenRecipeExample { language: 'css' | 'html' | 'json'; content: string; } export interface TokenRecipeAgentEntry { id: `token-recipe:${string}`; kind: 'token-recipe'; status: GuidanceStatus; summary: string; useWhen: string[]; avoidWhen: string[]; tokenRoles: TokenRecipeRole[]; compositionRules: string[]; variants: TokenRecipeVariant[]; stateOwnership?: string[]; accessibility?: string[]; examples?: TokenRecipeExample[]; references?: GuidanceReference[]; } export interface TokenAgentManifest { $schema: './agent.schema.json'; schemaVersion: '2.0.0'; package: '@ds-mo/tokens'; packageVersion: string; kind: 'tokens'; principles: TokenGuidancePrinciple[]; intents: ColorIntentGuidance[]; families: TokenFamilyAgentEntry[]; recipes: TokenRecipeAgentEntry[]; } declare const manifest: TokenAgentManifest; export default manifest;