import { z } from "zod"; export declare const actionWindowSchema: z.ZodObject<{ label: z.ZodString; start: z.ZodNumber; end: z.ZodNumber; }, z.core.$strict>; export declare const motionRangeSchema: z.ZodObject<{ start: z.ZodNumber; end: z.ZodNumber; }, z.core.$strict>; export declare const motionRegistrationSchema: z.ZodObject<{ project: z.ZodString; output: z.ZodString; depth: z.ZodDefault>; windows: z.ZodArray>; references: z.ZodDefault>; holds: z.ZodOptional; slideshowRequested: z.ZodOptional; range: z.ZodOptional>; }, z.core.$strict>; export type MotionRegistration = z.infer; export declare const motionManifestSchema: z.ZodObject<{ version: z.ZodLiteral<1>; range: z.ZodObject<{ start: z.ZodNumber; end: z.ZodNumber; }, z.core.$strict>; video: z.ZodObject<{ file: z.ZodString; sha256: z.ZodString; duration: z.ZodNumber; fps: z.ZodNumber; }, z.core.$strict>; windows: z.ZodArray>; pages: z.ZodArray; label: z.ZodString; times: z.ZodArray; file: z.ZodString; width: z.ZodNumber; height: z.ZodNumber; sha256: z.ZodString; }, z.core.$strict>>; }, z.core.$strict>; export type MotionManifest = z.infer; export declare function isMotionTechnicalReport(text: string): boolean; export declare function inside(root: string, target: string): boolean; /** * Existing paths only; checking their real paths rejects symlink escapes. A path is read * against the workspace as it was named (so `/tmp/x/file` works for a workspace named * `/tmp/x` although macOS keeps it at `/private/tmp/x`) and checked again by real path. */ export declare function motionPath(root: string, input: string): Promise; export declare function hashMotionFile(file: string, signal?: AbortSignal): Promise; export declare function readMotionText(root: string, input: string, maxBytes: number, signal?: AbortSignal): Promise; /** * Source/media fingerprint; output/QA folders are never composition inputs. `ignored` names * further files the composition never reads (e.g. a check's hold plan). */ export declare function motionSourceHash(project: string, output: string, signal?: AbortSignal, ignored?: readonly string[]): Promise; export declare function validateMotionManifest(directory: string, output: string, windows: MotionRegistration["windows"], signal?: AbortSignal, range?: MotionRegistration["range"]): Promise<{ manifest: MotionManifest; images: Buffer[]; }>;