import type { AuraCanonicalAsset } from "./CanonicalAsset.js"; export type AnimationAssetProfile = "animation-character" | "animation-prop" | "animation-set" | "animation-environment"; export type AnimationAssetCategory = "character" | "prop" | "set" | "environment"; export interface AnimationAssetProfileEvaluation { readonly profile: AnimationAssetProfile; readonly category: AnimationAssetCategory; readonly suitable: boolean; readonly scoreBonus: number; readonly rejectionReasons: readonly string[]; readonly warnings: readonly string[]; readonly matchedSignals: readonly string[]; /** * Checks that could not be decided from pre-download catalog metadata and must * be re-run against the downloaded GLB (e.g. embedded animation clips, rig, * triangle budget, walkable bounds). Empty unless `preDownload` was set. */ readonly validationHooks: readonly AnimationAssetValidationHook[]; } /** A deferred, post-download check the resolver/CLI should run on the GLB. */ export type AnimationAssetValidationHook = "animation-clips" | "humanoid-rig" | "facial-blendshapes" | "triangle-budget" | "payload-budget" | "walkable-bounds" | "character-scale-bounds" | "prop-scale-bounds"; export interface AnimationAssetProfileEvaluationOptions { /** * Pre-download (catalog-only) ranking mode. The hosted catalog exposes title + * tags + license but rarely rig/animation/triangle metadata, so in this mode * checks that depend on *absent* metadata DOWN-RANK and defer to a post-download * `validationHooks` entry instead of hard-rejecting the candidate. Proven-negative * signals (a `false` animation flag, photoreal/IP-risk/violence terms, or a * known-oversized payload/triangle/extent) still reject. Defaults to `false` * (strict post-download evaluation), preserving existing behavior. */ readonly preDownload?: boolean; } export declare const animationAssetProfiles: readonly AnimationAssetProfile[]; export declare function isAnimationAssetProfile(profile: string): profile is AnimationAssetProfile; export declare function evaluateAnimationAssetProfile(asset: AuraCanonicalAsset, profile: AnimationAssetProfile, options?: AnimationAssetProfileEvaluationOptions): AnimationAssetProfileEvaluation; //# sourceMappingURL=animation-profile.d.ts.map