import type { RiveArtboardGraph, RiveSkeleton2DImport } from '@flighthq/types/contract'; /** * Flattens an artboard's bones into a `Skeleton2D`. * * Rive keeps bones in the artboard's own component tree as `TransformComponent`s — siblings of `Node` * rather than nodes themselves — while `Skeleton2D` owns a flat, **parent-before-child** array and * propagates world transforms itself. The bridge is a topological sort, and it is well-founded rather * than a graph problem: every stated parent resolves and the tree holds no cycle, so ordering bones by * their depth in that tree already guarantees a parent precedes its children. Ties keep stream order, * so the result is stable for a given file. * * Returns `null` when the artboard has no bones, which is most of them — a caller pays for a skeleton * only when the file actually rigs something. */ export declare function createRiveSkeleton2D(artboard: Readonly): RiveSkeleton2DImport | null; //# sourceMappingURL=riveSkeleton.d.ts.map