import * as PIXI from "pixi.js"; import { ClipStyle, ReplaceMediaOptions } from '../../../../index'; import { Clip, ClipOptions } from "../../Clip"; /** * Options for creating an SVG clip. * * SVG clips always reference a library media item because the displayed texture is derived from that asset. */ export interface SvgClipOptions extends ClipOptions { mediaDataId: string; } /** * Clip implementation for SVG media rendered through an HTML image element and Pixi texture. * * The clip keeps the source vector data in an image element and refreshes the Pixi texture when the clip * changes size, allowing the editor to retain sharper output than a one-time rasterization. */ export declare class SvgClip extends Clip> { private image; private lastWidth; private lastHeight; private timeoutId; constructor(options: SvgClipOptions); private imageLoaded; init(layerId: string): Promise; updateVisibility(currentTime: number): void; private updateTexture; update(currentTime: number): void; /** * Replaces the underlying SVG asset and remaps crop/fit information to the new intrinsic media size. * * @param newMediaId Optional replacement media id. When omitted, the current media asset is reloaded. * @param options Replacement behavior controlling fit and crop adjustments. * @returns `true` when the media swap completed successfully. */ updateMediaData(newMediaId?: string, options?: ReplaceMediaOptions): Promise; /** * Creates a cloned SVG clip from serialized data. * * @returns Cloned SVG clip instance. */ clone(): SvgClip; /** * Releases the Pixi texture and any deferred texture-refresh timer. */ destroy(): void; /** * Serializes the clip into the base clip schema. * * @returns Serialized SVG clip payload. */ serialize(): { type: string; id: string; duration: number; subtitlesOffset: number; startTime: number; leftTrim: number; rightTrim: number; filters: { intensity: number; id: string; provider: string; filterId: string; clipId?: string | undefined; }[]; effects: any[]; isVisible: boolean; name?: string | undefined; mediaDataId?: string | undefined; subtitlesId?: string | undefined; wrapMode?: import('../../../../types').WrapModeEnum | undefined; blendMode?: import('../../../../types').BlendModeEnum | undefined; style?: unknown; text?: string | undefined; animationController?: { animationInDuration: number; animationOutDuration: number; animationLoopCount: number; loopSmoothing: number; animationDataIn?: { name: string; inOutOfRange: import('../../../../index').OutOfRangeEnum; outOutOfRange: import('../../../../index').OutOfRangeEnum; propertyAnimations: { property: string; keyframes: { value: string | number; time: number; easing: import('../../../../index').EasingEnum; space: import('../../../../index').AnimationSpaceEnum; relativeProperty?: string | undefined; }[]; inOutOfRange: import('../../../../index').OutOfRangeEnum; outOutOfRange: import('../../../../index').OutOfRangeEnum; }[]; speed?: number | undefined; offset?: number | undefined; amplification?: number | undefined; } | undefined; animationDataOut?: { name: string; inOutOfRange: import('../../../../index').OutOfRangeEnum; outOutOfRange: import('../../../../index').OutOfRangeEnum; propertyAnimations: { property: string; keyframes: { value: string | number; time: number; easing: import('../../../../index').EasingEnum; space: import('../../../../index').AnimationSpaceEnum; relativeProperty?: string | undefined; }[]; inOutOfRange: import('../../../../index').OutOfRangeEnum; outOutOfRange: import('../../../../index').OutOfRangeEnum; }[]; speed?: number | undefined; offset?: number | undefined; amplification?: number | undefined; } | undefined; animationDataLoop?: { name: string; inOutOfRange: import('../../../../index').OutOfRangeEnum; outOutOfRange: import('../../../../index').OutOfRangeEnum; propertyAnimations: { property: string; keyframes: { value: string | number; time: number; easing: import('../../../../index').EasingEnum; space: import('../../../../index').AnimationSpaceEnum; relativeProperty?: string | undefined; }[]; inOutOfRange: import('../../../../index').OutOfRangeEnum; outOutOfRange: import('../../../../index').OutOfRangeEnum; }[]; speed?: number | undefined; offset?: number | undefined; amplification?: number | undefined; } | undefined; } | undefined; customData?: [string, unknown][] | undefined; clipMasks?: { wrapMode: import('../../../../index').MaskWrapModeEnum; id: string; clipId: string; }[] | undefined; propertyAnimator?: { tracks: { type: import('../../../../index').PropertyDescriptionTypeEnum; property: string; keyframes: { value: (string | number | boolean | number[]) & (string | number | boolean | number[] | undefined); time: number; handleIn: { value: number; time: number; }; handleOut: { value: number; time: number; }; hold?: boolean | undefined; }[]; defaults?: { handleIn?: { value: number; time: number; } | undefined; handleOut?: { value: number; time: number; } | undefined; hold?: boolean | undefined; } | undefined; customData?: [string, unknown][] | undefined; }[]; initialValues?: [string, string | number | boolean | number[]][] | undefined; } | undefined; }; /** * Reconstructs an SVG clip from serialized state. * * @param payload Serialized SVG clip payload. * @returns Deserialized SVG clip instance. */ static deserialize(payload: object): SvgClip; }