import { type Aspect, type Composition } from "../../composition.js";
/**
 * Switch `comp` to `ratio`, updating `aspect` + `width` + `height` to the
 * canonical dimensions and proportionally rescaling every video clip's absolute
 * pixel offset (transforms.x / transforms.y) so its content stays placed
 * relative to the canvas centre instead of drifting off-frame.
 *
 * No-op (still rescales nothing) when `ratio` already matches `comp.aspect` AND
 * the dimensions already match — the scale factors are 1, so the walk is inert.
 *
 * Throws `CompositionOpError{code:4}` when `ratio` is not one of the four
 * canonical aspects.
 */
export declare function setAspectRatio(comp: Composition, p: {
    ratio: Aspect;
}): void;
/**
 * Resize `comp` IN PLACE to `newWidth × newHeight` and proportionally rescale
 * every clip's ABSOLUTE PIXEL offset (so content stays placed relative to the
 * canvas centre instead of drifting off-frame). This is the single source of
 * truth for the "change the canvas dimensions → adapt the clips" math, shared by
 * `setAspectRatio` (canonical-ratio switch) and the store's `applyPlatformPreset`
 * (arbitrary platform-preset dimensions) so the human-UI and agent-CLI paths
 * converge on identical compositions.
 *
 * Rescaled (× width-ratio / height-ratio respectively):
 *   - video clip `transforms.x` / `transforms.y` (static absolute offset),
 *   - video AND overlay clip x/y KEYFRAMES (the renderer composes these as
 *     `translate(${x}px,${y}px)` — a keyframed pan is dimension-dependent).
 * Left untouched: percentage placement (text/overlay `position.*Pct`) and
 * dimensionless keyframe properties (scale / rotation / opacity / speed).
 *
 * ADR-009: no I/O, mutates `comp` in place (never replaces the reference). Guards
 * a degenerate source (width/height 0 → scale factor 1, never NaN/Infinity).
 * When both scale factors are 1 (dims unchanged) the walk is inert.
 */
export declare function rescaleCompositionForResize(comp: Composition, oldWidth: number, oldHeight: number, newWidth: number, newHeight: number): void;
//# sourceMappingURL=setAspectRatio.d.ts.map