import { Hono } from 'hono'; import { S as StudioApiAdapter, M as MediaProcessingJobState } from './mediaProxyPreview-CGJ7f9JA.js'; export { L as LintResult, P as PreviewApiAdapter, R as RenderJobState, a as ResolvedProject, b as StudioSelectionResponse, c as StudioSelectionSnapshot, d as StudioSelectionTextField } from './mediaProxyPreview-CGJ7f9JA.js'; export { ScreenshotClip, getElementScreenshotClip } from './helpers/screenshotClip.js'; export { STUDIO_MANUAL_EDITS_PATH, StudioManualEditsRenderScriptOptions, createStudioManualEditsRenderBodyScript, createStudioPositionSeekReapplyScript } from './helpers/manualEditsRenderScript.js'; export { STUDIO_MOTION_PATH, StudioMotionRenderScriptOptions, createStudioMotionRenderBodyScript } from './helpers/studioMotionRenderScript.js'; export { isSafePath } from '@hyperframes/core'; import '@hyperframes/parsers'; import './helpers/mediaCodecMap.js'; /** * Create a Hono sub-app with all studio API routes. * * Both the vite dev server and CLI embedded server mount this app * under /api, each providing their own adapter for host-specific behavior. */ declare function createStudioApi(adapter: StudioApiAdapter): Hono; /** * Whether a write at `changedPath` can change `createProjectSignature(projectDir)`. * * Owned here because it is the exact complement of what the walk below collects, * and a second copy of that reasoning drifts the moment either set changes. A * watcher that invalidates on everything is not merely wasteful: `.thumbnails/` * is written by the thumbnail route on every capture, and each capture reads the * preview, so an unfiltered watcher discards the memo on roughly every request of * the one workload the memo exists for. * * Note this is not `WATCHER_EXCLUDED_DIRS`, which is character-identical but * excludes all of `.hyperframes/` — the signature deliberately reads two manifest * files from inside it, so filtering with that set would stop motion-state saves * from ever invalidating. * * Every segment is tested, not just the parents, so a directory event on an * excluded dir itself (`unlinkDir .thumbnails`) is filtered too. The cost is that * a *file* literally named `dist` at the project root reads as excluded; the walk * would collect it, so it is a false negative, and no real project has one. */ declare function affectsProjectSignature(projectDir: string, changedPath: string): boolean; /** * Creates a stable preview cache-busting signature for project source plus Studio manifests. */ declare function createProjectSignature(projectDir: string): string; /** Recursively walk a directory and return relative file paths. */ declare function walkDir(dir: string, prefix?: string): string[]; declare const MIME_TYPES: Record; declare function getMimeType(path: string): string; interface FileWriteReceipt { path: string; version: string; writeToken: string; } /** Strong content version used as both the JSON version and HTTP ETag. */ declare function fileContentVersion(content: string): string; /** Attach one API write's identity to the watcher echo for its exact bytes. */ declare function consumeFileWriteReceipt(absPath: string, expectedVersion: string): FileWriteReceipt | null; /** * Build a standalone HTML page for a sub-composition. * * Uses the project's own index.html `` so all dependencies (GSAP, fonts, * Lottie, reset styles, runtime) are preserved — instead of building a minimal * page from scratch that would miss important scripts/styles. * * Three dispatch modes, tried in order: * 1. `