@bardway/trpg-pixi 0.0.0-stage → 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (111) hide show
  1. package/LICENSE +21 -0
  2. package/NOTICE +10 -0
  3. package/NOTICE.md +1 -0
  4. package/README.md +25 -2
  5. package/dist/AnimationMilestones.d.ts +17 -0
  6. package/dist/BattleActionMotionMath.d.ts +24 -0
  7. package/dist/BattleActionPresentationRecipes.d.ts +11 -0
  8. package/dist/BattleFxLibrary.d.ts +16 -0
  9. package/dist/BattlePresentationEngine.d.ts +26 -0
  10. package/dist/BattlePresentationPoseRegistry.d.ts +25 -0
  11. package/dist/BattlePresentationRecipe.d.ts +48 -0
  12. package/dist/BattleSequenceScheduler.d.ts +11 -0
  13. package/dist/DisplayEventQueue.d.ts +24 -0
  14. package/dist/PixiAnimationActivity.d.ts +7 -0
  15. package/dist/PixiAnimationDirector.d.ts +21 -0
  16. package/dist/PixiApplicationFactory.d.ts +17 -0
  17. package/dist/PixiAssetManager.d.ts +70 -0
  18. package/dist/PixiBattleActionRecipes.d.ts +75 -0
  19. package/dist/PixiBattleCinematicSurface.d.ts +23 -0
  20. package/dist/PixiBattleEntryTransition.d.ts +87 -0
  21. package/dist/PixiBattleFieldSurface.d.ts +125 -0
  22. package/dist/PixiBattleFxResources.d.ts +154 -0
  23. package/dist/PixiBattleGrid.d.ts +13 -0
  24. package/dist/PixiBattleHudPorts.d.ts +192 -0
  25. package/dist/PixiBattleHudSurface.d.ts +159 -0
  26. package/dist/PixiBattleLightningResources.d.ts +57 -0
  27. package/dist/PixiBattleMapDissolve.d.ts +38 -0
  28. package/dist/PixiBattleSceneTransition.d.ts +30 -0
  29. package/dist/PixiBattleTokenLifecycleCoordinator.d.ts +44 -0
  30. package/dist/PixiBattleVisualLayout.d.ts +284 -0
  31. package/dist/PixiBattleWhipGeometry.d.ts +18 -0
  32. package/dist/PixiBattleWhipMotion.d.ts +63 -0
  33. package/dist/PixiBattleWhipResources.d.ts +53 -0
  34. package/dist/PixiCameraFocusController.d.ts +40 -0
  35. package/dist/PixiCombatMotion.d.ts +223 -0
  36. package/dist/PixiCurrentActorCardGlow.d.ts +37 -0
  37. package/dist/PixiCurrentActorHalo.d.ts +55 -0
  38. package/dist/PixiDirectionalMotionBlur.d.ts +12 -0
  39. package/dist/PixiDisplayRenderer.d.ts +85 -0
  40. package/dist/PixiEffectPlugin.d.ts +25 -0
  41. package/dist/PixiEndingSurface.d.ts +104 -0
  42. package/dist/PixiInvestigatorDossierInsanityFilter.d.ts +14 -0
  43. package/dist/PixiLocalGlowMesh.d.ts +38 -0
  44. package/dist/PixiMapEdgeShadow.d.ts +36 -0
  45. package/dist/PixiMapMediaSurface.d.ts +71 -0
  46. package/dist/PixiMapWorldUtils.d.ts +24 -0
  47. package/dist/PixiMediaBreathRuntime.d.ts +69 -0
  48. package/dist/PixiMotion.d.ts +42 -0
  49. package/dist/PixiObjectiveBreathingGlow.d.ts +39 -0
  50. package/dist/PixiPartyHudSurface.d.ts +58 -0
  51. package/dist/PixiPersistentEffectTransition.d.ts +23 -0
  52. package/dist/PixiPortraitResourceCard.d.ts +147 -0
  53. package/dist/PixiPreludeStoryTransition.d.ts +35 -0
  54. package/dist/PixiPreludeSurface.d.ts +203 -0
  55. package/dist/PixiProgressCinematic.d.ts +65 -0
  56. package/dist/PixiResultEffectSurface.d.ts +101 -0
  57. package/dist/PixiRetainedMeterAnimator.d.ts +44 -0
  58. package/dist/PixiRuntimeContext.d.ts +21 -0
  59. package/dist/PixiSceneGraph.d.ts +42 -0
  60. package/dist/PixiSceneMotion.d.ts +41 -0
  61. package/dist/PixiSceneMotionPorts.d.ts +83 -0
  62. package/dist/PixiScenePresentationDirector.d.ts +118 -0
  63. package/dist/PixiSessionLayout.d.ts +61 -0
  64. package/dist/PixiSessionSkin.d.ts +30 -0
  65. package/dist/PixiShaderRuntime.d.ts +191 -0
  66. package/dist/PixiStageFontLoader.d.ts +2 -0
  67. package/dist/PixiStageMetrics.d.ts +25 -0
  68. package/dist/PixiStageTheme.d.ts +26 -0
  69. package/dist/PixiStoryArchiveMotion.d.ts +19 -0
  70. package/dist/PixiStoryCardCut.d.ts +58 -0
  71. package/dist/PixiStorySurface.d.ts +285 -0
  72. package/dist/PixiStoryWorkspaceSurface.d.ts +64 -0
  73. package/dist/PixiSummaryBoardSurface.d.ts +112 -0
  74. package/dist/PixiSystemHudSurface.d.ts +73 -0
  75. package/dist/PixiTeamCheckCinematic.d.ts +34 -0
  76. package/dist/PixiTextTransitionEffect.d.ts +54 -0
  77. package/dist/PixiTokenPersistentStatus.d.ts +101 -0
  78. package/dist/PixiTokenWorld.d.ts +170 -0
  79. package/dist/PixiTypography.d.ts +96 -0
  80. package/dist/PixiVideoRuntime.d.ts +61 -0
  81. package/dist/PixiViewportController.d.ts +25 -0
  82. package/dist/ResultEffectTuning.d.ts +57 -0
  83. package/dist/RetainedStageSurface.d.ts +50 -0
  84. package/dist/SessionFieldEffectRuntime.d.ts +45 -0
  85. package/dist/SessionSceneHistory.d.ts +10 -0
  86. package/dist/SessionSceneRegistry.d.ts +31 -0
  87. package/dist/StoryEventCoordinator.d.ts +61 -0
  88. package/dist/effects/PixiEffectLayerRegistry.d.ts +54 -0
  89. package/dist/effects/PixiEffectScope.d.ts +20 -0
  90. package/dist/effects/PixiStableRandom.d.ts +2 -0
  91. package/dist/index.d.ts +92 -0
  92. package/dist/index.js +24184 -0
  93. package/dist/index.js.map +7 -0
  94. package/dist/recipes/EffectPrimitiveRuntimeRegistry.d.ts +28 -0
  95. package/dist/recipes/EffectRecipeExecutor.d.ts +73 -0
  96. package/dist/recipes/primitives.d.ts +39 -0
  97. package/dist/recipes/registry.d.ts +57 -0
  98. package/dist/recipes/schema.d.ts +93 -0
  99. package/dist/recipes.d.ts +5 -0
  100. package/dist/recipes.js +1384 -0
  101. package/dist/recipes.js.map +7 -0
  102. package/dist/story/PixiStoryPresentationEngine.d.ts +90 -0
  103. package/dist/story/StoryContentSurface.d.ts +34 -0
  104. package/dist/story/StoryImageFilter.d.ts +15 -0
  105. package/dist/story/StoryTimelineClock.d.ts +22 -0
  106. package/dist/story/StoryVisualMath.d.ts +6 -0
  107. package/dist/tuning/SessionTuningResolver.d.ts +1 -0
  108. package/dist/tuning/SessionTuningTypes.d.ts +1 -0
  109. package/dist/ui/PixiStagePrimitives.d.ts +36 -0
  110. package/dist/uniforms.d.ts +1 -0
  111. package/package.json +44 -4
@@ -0,0 +1,28 @@
1
+ import type { EffectPrimitiveDescriptor } from './primitives.js';
2
+ import type { EffectRecipeDefinition, EffectRecipeId, EffectRecipeTrackDefinition, ResolvedRecipeValue } from './schema.js';
3
+ export type EffectPrimitiveResolvedParams = Record<string, ResolvedRecipeValue>;
4
+ export interface EffectPrimitiveRuntimeHandle {
5
+ cleanup(): void;
6
+ completed?: Promise<void>;
7
+ cleanupPolicy?: 'track-end' | 'recipe-end';
8
+ }
9
+ export type EffectPrimitiveCleanup = void | (() => void) | EffectPrimitiveRuntimeHandle;
10
+ export type EffectPrimitiveExecuteResult = EffectPrimitiveCleanup | Promise<EffectPrimitiveCleanup>;
11
+ export interface EffectPrimitiveExecutionContext<TRuntimeContext = unknown> {
12
+ recipeId: EffectRecipeId;
13
+ recipe: EffectRecipeDefinition;
14
+ track: EffectRecipeTrackDefinition;
15
+ primitive: EffectPrimitiveDescriptor;
16
+ runtimeContext: TRuntimeContext;
17
+ }
18
+ export interface EffectPrimitiveRuntime<TRuntimeContext = unknown> {
19
+ readonly primitiveId: string;
20
+ readonly consumedParams?: readonly string[];
21
+ execute(context: EffectPrimitiveExecutionContext<TRuntimeContext>, params: EffectPrimitiveResolvedParams, signal: AbortSignal): EffectPrimitiveExecuteResult;
22
+ }
23
+ export declare class EffectPrimitiveRuntimeRegistry<TRuntimeContext = unknown> {
24
+ private readonly runtimes;
25
+ register(runtime: EffectPrimitiveRuntime<TRuntimeContext>): void;
26
+ get(primitiveId: string): EffectPrimitiveRuntime<TRuntimeContext> | null;
27
+ listIds(): readonly string[];
28
+ }
@@ -0,0 +1,73 @@
1
+ import { type EffectPrimitiveDescriptor, type EffectPrimitiveRegistry } from './primitives.js';
2
+ import { type EffectRecipeRegistry } from './registry.js';
3
+ import { type EffectRecipeValidationError, type EffectRecipeDefinition, type EffectRecipeId, type EffectRecipeTrackDefinition, type EffectRecipeTuningPathReference, type ResolvedRecipeValue } from './schema.js';
4
+ import type { EffectPrimitiveExecutionContext, EffectPrimitiveResolvedParams, EffectPrimitiveRuntime } from './EffectPrimitiveRuntimeRegistry.js';
5
+ import { EffectPrimitiveRuntimeRegistry } from './EffectPrimitiveRuntimeRegistry.js';
6
+ export type EffectRecipeExecutorErrorCode = 'invalid_params' | 'runtime_error' | 'tuning_resolution_failed' | 'unknown_primitive' | 'unknown_recipe' | 'unknown_runtime';
7
+ export interface EffectRecipeExecutorScheduler {
8
+ setTimeout(callback: () => void, delayMs: number): unknown;
9
+ clearTimeout(handle: unknown): void;
10
+ }
11
+ export interface EffectRecipeTuningResolutionContext<TRuntimeContext> {
12
+ recipe: EffectRecipeDefinition;
13
+ track: EffectRecipeTrackDefinition;
14
+ primitive: EffectPrimitiveDescriptor;
15
+ paramName: string;
16
+ runtimeContext: TRuntimeContext;
17
+ }
18
+ export interface EffectRecipeTrackPlanItem<TRuntimeContext> {
19
+ track: EffectRecipeTrackDefinition;
20
+ primitive: EffectPrimitiveDescriptor;
21
+ runtime: EffectPrimitiveRuntime<TRuntimeContext>;
22
+ params: EffectPrimitiveResolvedParams;
23
+ executionContext: EffectPrimitiveExecutionContext<TRuntimeContext>;
24
+ }
25
+ export interface EffectRecipeExecutionOutcome {
26
+ recipeId: EffectRecipeId;
27
+ status: 'completed' | 'aborted';
28
+ committed: boolean;
29
+ }
30
+ export interface EffectRecipeExecutionHandle {
31
+ recipe: EffectRecipeDefinition;
32
+ signal: AbortSignal;
33
+ done: Promise<EffectRecipeExecutionOutcome>;
34
+ abort(reason?: string): void;
35
+ }
36
+ export interface EffectRecipeExecutorOptions<TRuntimeContext> {
37
+ runtimeRegistry: EffectPrimitiveRuntimeRegistry<TRuntimeContext>;
38
+ resolveTuningPath: (reference: EffectRecipeTuningPathReference, context: EffectRecipeTuningResolutionContext<TRuntimeContext>) => ResolvedRecipeValue;
39
+ scheduler: EffectRecipeExecutorScheduler;
40
+ recipeRegistry: Pick<EffectRecipeRegistry, 'get' | 'validate'>;
41
+ primitiveRegistry: EffectPrimitiveRegistry;
42
+ }
43
+ export interface ExecuteEffectRecipeOptions<TRuntimeContext> {
44
+ recipe: EffectRecipeId | EffectRecipeDefinition;
45
+ runtimeContext: TRuntimeContext;
46
+ signal?: AbortSignal;
47
+ onCommit?: (recipe: EffectRecipeDefinition) => void;
48
+ onDone?: (outcome: EffectRecipeExecutionOutcome) => void;
49
+ }
50
+ export declare class EffectRecipeExecutorError extends Error {
51
+ readonly code: EffectRecipeExecutorErrorCode;
52
+ readonly recipeId: EffectRecipeId;
53
+ readonly cause: unknown;
54
+ constructor(code: EffectRecipeExecutorErrorCode, recipeId: EffectRecipeId, message: string, options?: {
55
+ trackId?: string;
56
+ validationErrors?: readonly EffectRecipeValidationError[];
57
+ cause?: unknown;
58
+ });
59
+ readonly trackId?: string;
60
+ readonly validationErrors: readonly EffectRecipeValidationError[];
61
+ }
62
+ export declare class EffectRecipeExecutor<TRuntimeContext = unknown> {
63
+ private readonly options;
64
+ private readonly scheduler;
65
+ private readonly recipeRegistry;
66
+ private readonly primitiveRegistry;
67
+ constructor(options: EffectRecipeExecutorOptions<TRuntimeContext>);
68
+ buildPlan(recipeInput: EffectRecipeId | EffectRecipeDefinition, runtimeContext: TRuntimeContext): readonly EffectRecipeTrackPlanItem<TRuntimeContext>[];
69
+ execute(runOptions: ExecuteEffectRecipeOptions<TRuntimeContext>): EffectRecipeExecutionHandle;
70
+ private resolveRecipe;
71
+ private resolveTrackPlanItem;
72
+ private resolveTuningReference;
73
+ }
@@ -0,0 +1,39 @@
1
+ import type { EffectRecipeScope } from './schema.js';
2
+ export declare const EFFECT_PRIMITIVE_CATEGORIES: readonly ["content", "screen", "camera", "shader", "particle", "ui", "audio"];
3
+ export declare const EFFECT_PRIMITIVE_PARAM_TYPES: readonly ["string", "number", "boolean", "number[]"];
4
+ export declare const EFFECT_PRIMITIVE_PREVIEW_SUPPORT: readonly ["full", "milestone", "replay-only"];
5
+ export type EffectPrimitiveCategory = (typeof EFFECT_PRIMITIVE_CATEGORIES)[number];
6
+ export type EffectPrimitiveParamType = (typeof EFFECT_PRIMITIVE_PARAM_TYPES)[number];
7
+ export type EffectPrimitivePreviewSupport = (typeof EFFECT_PRIMITIVE_PREVIEW_SUPPORT)[number];
8
+ export interface EffectPrimitiveParamDescriptor {
9
+ name: string;
10
+ label: string;
11
+ type: EffectPrimitiveParamType;
12
+ required: boolean;
13
+ min?: number;
14
+ max?: number;
15
+ minLength?: number;
16
+ maxLength?: number;
17
+ arrayMinLength?: number;
18
+ arrayMaxLength?: number;
19
+ options?: readonly (string | number | boolean)[];
20
+ tuningPathAllowed?: boolean;
21
+ }
22
+ export interface EffectPrimitiveDescriptor {
23
+ id: string;
24
+ label: string;
25
+ category: EffectPrimitiveCategory;
26
+ scopes: readonly EffectRecipeScope[];
27
+ paramsSchema: readonly EffectPrimitiveParamDescriptor[];
28
+ previewSupport: EffectPrimitivePreviewSupport;
29
+ conflicts: readonly string[];
30
+ maxInstances: number;
31
+ }
32
+ export declare class EffectPrimitiveRegistry {
33
+ private readonly descriptors;
34
+ private readonly descriptorById;
35
+ constructor(descriptors: readonly EffectPrimitiveDescriptor[]);
36
+ all(): readonly EffectPrimitiveDescriptor[];
37
+ get(id: string): EffectPrimitiveDescriptor | null;
38
+ listByScope(scope: EffectRecipeScope): readonly EffectPrimitiveDescriptor[];
39
+ }
@@ -0,0 +1,57 @@
1
+ import { type EffectPrimitiveDescriptor, type EffectPrimitiveRegistry } from './primitives.js';
2
+ import { type EffectRecipeAppMetadata, type EffectRecipeCategory, type EffectRecipeDefinition, type EffectRecipeId, type EffectRecipeScope, type EffectRecipeTuningPathReference, type EffectRecipeValidationError, type RecipeValue, type ResolvedRecipeValue } from './schema.js';
3
+ export type EffectRecipeSource = 'builtin' | 'custom';
4
+ export interface EffectRecipeManifestEntry {
5
+ source: EffectRecipeSource;
6
+ definition: unknown;
7
+ }
8
+ export interface EffectRecipeCatalogEntry {
9
+ id: EffectRecipeId;
10
+ name: string;
11
+ description: string;
12
+ scope: EffectRecipeScope;
13
+ category: EffectRecipeCategory;
14
+ durationMs: number;
15
+ commitAtMs: number;
16
+ source: EffectRecipeSource;
17
+ app: EffectRecipeAppMetadata;
18
+ trackCount: number;
19
+ }
20
+ export interface EffectRecipeRegistration {
21
+ source: EffectRecipeSource;
22
+ definition: EffectRecipeDefinition;
23
+ catalog: EffectRecipeCatalogEntry;
24
+ }
25
+ export interface EffectRecipeManifestValidationResult {
26
+ entries: readonly EffectRecipeRegistration[];
27
+ errors: readonly EffectRecipeValidationError[];
28
+ }
29
+ export interface EffectRecipeSingleValidationResult {
30
+ entry: EffectRecipeRegistration | null;
31
+ errors: readonly EffectRecipeValidationError[];
32
+ }
33
+ export declare class EffectRecipeRegistryError extends Error {
34
+ readonly errors: readonly EffectRecipeValidationError[];
35
+ constructor(errors: readonly EffectRecipeValidationError[]);
36
+ }
37
+ type PrimitiveParamValidationResult<TValue> = {
38
+ params: Record<string, TValue> | null;
39
+ errors: readonly EffectRecipeValidationError[];
40
+ };
41
+ export declare const validateEffectRecipeTrackParams: (descriptor: EffectPrimitiveDescriptor, params: unknown, pathPrefix?: string) => PrimitiveParamValidationResult<RecipeValue>;
42
+ export declare const validateResolvedEffectRecipeTrackParams: (descriptor: EffectPrimitiveDescriptor, params: unknown, pathPrefix?: string) => PrimitiveParamValidationResult<ResolvedRecipeValue>;
43
+ export declare const validateEffectRecipeManifest: (entries: readonly EffectRecipeManifestEntry[], primitiveRegistry: EffectPrimitiveRegistry) => EffectRecipeManifestValidationResult;
44
+ export declare class EffectRecipeRegistry {
45
+ private readonly primitiveRegistry;
46
+ private readonly entries;
47
+ private readonly entryById;
48
+ constructor(manifestEntries: readonly EffectRecipeManifestEntry[], primitiveRegistry: EffectPrimitiveRegistry);
49
+ all(): readonly EffectRecipeRegistration[];
50
+ catalog(): readonly EffectRecipeCatalogEntry[];
51
+ get(recipeId: EffectRecipeId): EffectRecipeRegistration | null;
52
+ listByScope(scope: EffectRecipeScope): readonly EffectRecipeRegistration[];
53
+ listByCategory(category: EffectRecipeCategory): readonly EffectRecipeRegistration[];
54
+ validate(definition: unknown, source?: EffectRecipeSource): EffectRecipeSingleValidationResult;
55
+ }
56
+ export declare const resolveEffectRecipePrimitiveDescriptor: (recipe: EffectRecipeDefinition, trackIndex: number, primitiveRegistry: EffectPrimitiveRegistry) => EffectPrimitiveDescriptor | null;
57
+ export type { EffectRecipeTuningPathReference };
@@ -0,0 +1,93 @@
1
+ export declare const EFFECT_RECIPE_SCHEMA_VERSION = 4;
2
+ export declare const EFFECT_RECIPE_SCOPES: readonly ["story", "battle"];
3
+ export declare const EFFECT_RECIPE_CATEGORIES: readonly ["entrance", "utility"];
4
+ export declare const EFFECT_RECIPE_ID_MAX_LENGTH = 80;
5
+ export declare const EFFECT_RECIPE_TRACK_ID_MAX_LENGTH = 80;
6
+ export declare const EFFECT_RECIPE_PRIMITIVE_ID_MAX_LENGTH = 80;
7
+ export declare const EFFECT_RECIPE_NAME_MAX_CODE_POINTS = 80;
8
+ export declare const EFFECT_RECIPE_DESCRIPTION_MAX_CODE_POINTS = 240;
9
+ export declare const EFFECT_RECIPE_APP_LABEL_MAX_CODE_POINTS = 48;
10
+ export declare const EFFECT_RECIPE_APP_SHORT_DESCRIPTION_MAX_CODE_POINTS = 120;
11
+ export declare const EFFECT_RECIPE_APP_ICON_ID_MAX_LENGTH = 80;
12
+ export declare const EFFECT_RECIPE_MAX_DURATION_MS = 20000;
13
+ export declare const EFFECT_RECIPE_MAX_TRACKS = 24;
14
+ export declare const EFFECT_RECIPE_VALUE_MAX_STRING_CODE_POINTS = 240;
15
+ export declare const EFFECT_RECIPE_VALUE_MAX_ARRAY_LENGTH = 8;
16
+ export declare const EFFECT_RECIPE_TUNING_PATH_MAX_LENGTH = 160;
17
+ export declare const EFFECT_RECIPE_APP_ORDER_MAX = 9999;
18
+ export declare const EFFECT_RECIPE_STABLE_ID_REGEX: RegExp;
19
+ export declare const EFFECT_RECIPE_TUNING_PATH_REGEX: RegExp;
20
+ export type EffectRecipeScope = (typeof EFFECT_RECIPE_SCOPES)[number];
21
+ export type EffectRecipeCategory = (typeof EFFECT_RECIPE_CATEGORIES)[number];
22
+ export type EffectRecipeId = string;
23
+ export type EffectRecipeTrackId = string;
24
+ export type EffectPrimitiveId = string;
25
+ export interface EffectRecipeTuningPathReference {
26
+ tuningPath: string;
27
+ }
28
+ export type RecipeValue = string | number | boolean | number[] | EffectRecipeTuningPathReference;
29
+ export type ResolvedRecipeValue = string | number | boolean | number[];
30
+ export interface EffectRecipeAppMetadata {
31
+ label: string;
32
+ shortDescription: string;
33
+ iconId: string;
34
+ order: number;
35
+ }
36
+ export declare const EFFECT_TARGETS: readonly ["main-content", "story-workspace", "full-stage"];
37
+ export type EffectTarget = (typeof EFFECT_TARGETS)[number];
38
+ export interface EffectRecipeTrackDefinition {
39
+ target?: EffectTarget;
40
+ id: EffectRecipeTrackId;
41
+ atMs: number;
42
+ durationMs: number;
43
+ primitiveId: EffectPrimitiveId;
44
+ params: Record<string, RecipeValue>;
45
+ enabled: boolean;
46
+ }
47
+ export interface EffectRecipeDefinition {
48
+ schemaVersion: typeof EFFECT_RECIPE_SCHEMA_VERSION;
49
+ id: EffectRecipeId;
50
+ name: string;
51
+ description: string;
52
+ scope: EffectRecipeScope;
53
+ category: EffectRecipeCategory;
54
+ durationMs: number;
55
+ commitAtMs: number;
56
+ app: EffectRecipeAppMetadata;
57
+ tracks: readonly EffectRecipeTrackDefinition[];
58
+ }
59
+ export type EffectRecipeManifestDocument = Readonly<Record<string, unknown>>;
60
+ export type EffectRecipeValidationErrorCode = 'duplicate_recipe_id' | 'duplicate_track_id' | 'invalid_enum' | 'invalid_id' | 'invalid_length' | 'invalid_param_type' | 'invalid_param_value' | 'invalid_recipe_value' | 'invalid_schema_version' | 'invalid_tuning_path' | 'invalid_type' | 'missing_param' | 'out_of_range' | 'too_many_items' | 'unknown_param' | 'unknown_primitive' | 'unknown_schema_version' | 'unsupported_scope';
61
+ export interface EffectRecipeValidationError {
62
+ code: EffectRecipeValidationErrorCode;
63
+ path: string;
64
+ message: string;
65
+ }
66
+ export interface EffectRecipeMigration {
67
+ schemaVersion: number;
68
+ migrate(definition: EffectRecipeManifestDocument): unknown;
69
+ }
70
+ export interface EffectRecipeMigrationResult {
71
+ document: EffectRecipeManifestDocument | null;
72
+ errors: readonly EffectRecipeValidationError[];
73
+ }
74
+ export interface EffectRecipeDefinitionValidationResult {
75
+ definition: EffectRecipeDefinition | null;
76
+ errors: readonly EffectRecipeValidationError[];
77
+ }
78
+ export declare const EFFECT_RECIPE_MIGRATIONS: readonly [EffectRecipeMigration];
79
+ export declare const effectRecipeMigrationRegistry: Readonly<{
80
+ all: () => readonly EffectRecipeMigration[];
81
+ get: (schemaVersion: number) => EffectRecipeMigration | null;
82
+ }>;
83
+ export declare const isEffectRecipeScope: (value: unknown) => value is EffectRecipeScope;
84
+ export declare const isEffectRecipeCategory: (value: unknown) => value is EffectRecipeCategory;
85
+ export declare const isEffectRecipeId: (value: unknown) => value is EffectRecipeId;
86
+ export declare const isEffectRecipeTrackId: (value: unknown) => value is EffectRecipeTrackId;
87
+ export declare const isEffectPrimitiveId: (value: unknown) => value is EffectPrimitiveId;
88
+ export declare const isEffectRecipeTuningPath: (value: unknown) => value is string;
89
+ export declare const isEffectRecipeTuningPathReference: (value: unknown) => value is EffectRecipeTuningPathReference;
90
+ export declare const isResolvedRecipeValue: (value: unknown) => value is ResolvedRecipeValue;
91
+ export declare const migrateEffectRecipeDefinition: (value: unknown) => EffectRecipeMigrationResult;
92
+ export declare const validateEffectRecipeDefinition: (value: unknown) => EffectRecipeDefinitionValidationResult;
93
+ export declare const createEffectRecipeValidationError: (code: EffectRecipeValidationErrorCode, path: string, message: string) => EffectRecipeValidationError;
@@ -0,0 +1,5 @@
1
+ export * from './recipes/schema.js';
2
+ export * from './recipes/primitives.js';
3
+ export * from './recipes/registry.js';
4
+ export * from './recipes/EffectPrimitiveRuntimeRegistry.js';
5
+ export * from './recipes/EffectRecipeExecutor.js';