import { type KeyframeInterpolationFunction } from '@remotion/studio-shared'; import type { CanUpdateSequencePropStatus, ExtrapolateType, InteractivitySchema, InterpolateOutputOption, SequenceNodePath, VideoConfigValues } from 'remotion'; type KeyframeEasing = Extract['easing'][number]; export type KeyframeOperation = { type: 'add'; frame: number; value: unknown; } | { type: 'remove'; frame: number; valueWhenLastKeyframeDeleted: unknown | null; } | { type: 'settings'; clamping: { left: ExtrapolateType; right: ExtrapolateType; } | undefined; posterize: number | undefined; output: InterpolateOutputOption | undefined; } | { type: 'easing'; segmentIndex: number; easing: KeyframeEasing; } | { type: 'move'; moves: { fromFrame: number; toFrame: number; }[]; }; export type SequenceKeyframeUpdate = { key: string; operation: KeyframeOperation; }; export type EffectKeyframeUpdate = { key: string; operation: KeyframeOperation; }; export type FormatKeyframesFile = (input: { contents: string; prettierConfigOverride: Record | null; }) => Promise<{ output: string; formatted: boolean; }>; export type IntroducedKeyframeIdentifiers = { calleeName: KeyframeInterpolationFunction | null; needsFrameHook: boolean; needsEasingImport: boolean; }; export declare const updateSequenceKeyframesAst: ({ input, nodePath, updates, schema, prettierConfigOverride, videoConfigValues, }: { input: string; nodePath: SequenceNodePath; updates: SequenceKeyframeUpdate[]; schema?: InteractivitySchema | undefined; prettierConfigOverride?: Record | null | undefined; videoConfigValues: VideoConfigValues | null; }) => { serialized: string; oldValueStrings: string[]; newValueStrings: string[]; logLine: number; updatedNodePath: SequenceNodePath; }; export declare const updateSequenceKeyframes: ({ input, nodePath, updates, schema, prettierConfigOverride, videoConfigValues, }: { input: string; nodePath: SequenceNodePath; updates: SequenceKeyframeUpdate[]; schema?: InteractivitySchema | undefined; formatFile?: FormatKeyframesFile | undefined; prettierConfigOverride?: Record | null | undefined; videoConfigValues: VideoConfigValues | null; }) => Promise<{ output: string; formatted: boolean; oldValueStrings: string[]; newValueStrings: string[]; logLine: number; updatedNodePath: SequenceNodePath; }>; export declare const updateEffectKeyframesAst: ({ input, sequenceNodePath, effectIndex, updates, schema, prettierConfigOverride, videoConfigValues, }: { input: string; sequenceNodePath: SequenceNodePath; effectIndex: number; updates: EffectKeyframeUpdate[]; schema?: InteractivitySchema | undefined; prettierConfigOverride?: Record | null | undefined; videoConfigValues: VideoConfigValues | null; }) => { serialized: string; oldValueStrings: string[]; newValueStrings: string[]; logLine: number; effectCallee: string; updatedSequenceNodePath: SequenceNodePath; }; export declare const updateEffectKeyframes: ({ input, sequenceNodePath, effectIndex, updates, schema, prettierConfigOverride, videoConfigValues, }: { input: string; sequenceNodePath: SequenceNodePath; effectIndex: number; updates: EffectKeyframeUpdate[]; schema?: InteractivitySchema | undefined; formatFile?: FormatKeyframesFile | undefined; prettierConfigOverride?: Record | null | undefined; videoConfigValues: VideoConfigValues | null; }) => Promise<{ output: string; formatted: boolean; oldValueStrings: string[]; newValueStrings: string[]; logLine: number; effectCallee: string; updatedSequenceNodePath: SequenceNodePath; }>; export {};