import type { DisplayObject, ImportDiagnostic, Node2D, RiveArtboardGraph } from '@flighthq/types/contract'; /** * Applies the artboard's draw rules, which override hierarchy order for the nodes they govern. * * A `DrawRules` is parented to the node it governs and names a `DrawTarget`, which in turn names the * drawable to sit beside and whether to land before or after it. That is exactly the shape of * `setNodeOrderListEntryBelow` / `Above`, so a rule needs no interpretation beyond resolving its two * ids. * * Ordering is a permutation **within one parent**, so a rule whose governed node and target drawable * are not siblings cannot be honored without reparenting — which would move the node out of the group * whose alpha, blend, and clip it composites under. Those are reported as fidelity loss rather than * approximated, and they are the minority: across the 41-file reference corpus, of 61 rules 33 are * honored, 13 cross a parent boundary, and 15 name an end that is not a display node. Sibling-ness is * a fact about the *display* tree, not the component tree — the two disagree, because a component * whose parent is not itself a display node reparents up to the nearest one. */ export declare function applyRiveDrawOrder(nodes: readonly (Node2D | null)[], artboard: Readonly, root: DisplayObject, diagnostics?: ImportDiagnostic[]): void; //# sourceMappingURL=riveDrawOrder.d.ts.map