/** * Shared local-asset resolution helpers for every package that maps * composition asset URLs to files on disk (lint project rules, the HEVC * preview check, studio-server's media codec scan). Import via the * `@hyperframes/parsers/asset-resolution` subpath. */ declare function isRemoteOrInlineUrl(url: string): boolean; /** * True when a URL still contains an unresolved templating placeholder — * `<>`, `{{ token }}`, or `${token}` — that a build or templating step * substitutes before render. The static linter runs before that substitution, * so it cannot resolve such a value to a file on disk and must not report it as * a missing asset. Check the RAW url, before any `cleanAssetUrl()` step: that * splits on `?`/`#`, which also chops inside a `${...}` expression. (The `__UPPER__` * placeholder shape is combined with this in `isUnresolvedAssetPlaceholder` below, the * shared predicate asset-src sites skip on.) */ declare function hasUnresolvedTemplatingToken(url: string): boolean; /** * True when an asset src is a build-time placeholder rather than a resolvable path: * the `__UPPER__` shape (e.g. `__DURATION__`) or an unresolved templating token * (`<<...>>`, `{{...}}`, `${...}`). Pass the RAW src, before any `cleanAssetUrl()` step — * cleanAssetUrl splits on `?`/`#`, which would chop inside a `${...}` expression and defeat * the token match. Remote/inline URL handling is deliberately NOT folded in: call sites * differ (e.g. audio uses a narrower http/data/blob check), so each keeps its own. * * This is the single skip predicate every asset-src lint / codec / compile site should * route through, so the placeholder rules can't drift apart across call sites. */ declare function isUnresolvedAssetPlaceholder(rawSrc: string): boolean; /** * Every `data-composition-src` reference in one composition file's raw text, in * document order, deduped. The single owner of "which sub-compositions does * this file mount", so lint, telemetry, and any future scanner cannot drift * apart on the answer. * * Text-scanning rather than DOM-walking, and that is the load-bearing choice. * Every sub-composition except the render entry is authored inside a * `