import * as PIXI from "pixi.js"; import zod from "zod"; import { Clip, ClipOptions } from "../../Clip"; import { ClipStyle } from "../../ClipStyle"; import { PropertyDescriptionTypeEnum } from '../../../library/types/Property.types'; declare const HtmlTextStyleSchema: zod.ZodObject<{ align: zod.ZodDefault, zod.ZodLiteral<"center">, zod.ZodLiteral<"right">, zod.ZodLiteral<"justify">]>>>; breakWords: zod.ZodDefault>; dropShadow: zod.ZodDefault>; dropShadowAlpha: zod.ZodDefault>; dropShadowAngle: zod.ZodDefault>; dropShadowBlur: zod.ZodDefault>; dropShadowColor: zod.ZodDefault>; dropShadowDistance: zod.ZodDefault>; color: zod.ZodDefault>; fontFamily: zod.ZodDefault>; fontSize: zod.ZodDefault>; fontStyle: zod.ZodDefault, zod.ZodLiteral<"italic">, zod.ZodLiteral<"oblique">]>>>; fontVariant: zod.ZodDefault, zod.ZodLiteral<"small-caps">]>>>; fontWeight: zod.ZodDefault, zod.ZodLiteral<"bold">, zod.ZodLiteral<"bolder">, zod.ZodLiteral<"lighter">, zod.ZodLiteral<"100">, zod.ZodLiteral<"200">, zod.ZodLiteral<"300">, zod.ZodLiteral<"400">, zod.ZodLiteral<"500">, zod.ZodLiteral<"600">, zod.ZodLiteral<"700">, zod.ZodLiteral<"800">, zod.ZodLiteral<"900">]>>>; letterSpacing: zod.ZodDefault>; lineHeight: zod.ZodDefault>; padding: zod.ZodDefault>; stroke: zod.ZodDefault>; strokeThickness: zod.ZodDefault>; whiteSpace: zod.ZodDefault, zod.ZodLiteral<"pre">, zod.ZodLiteral<"pre-line">]>>>; wordWrap: zod.ZodDefault>; wordWrapWidth: zod.ZodDefault>; }, "strip", zod.ZodTypeAny, { color: string; padding: number; align: "left" | "center" | "right" | "justify"; fontSize: number; fontWeight: "normal" | "bold" | "bolder" | "lighter" | "100" | "200" | "300" | "400" | "500" | "600" | "700" | "800" | "900"; fontFamily: string; fontStyle: "normal" | "italic" | "oblique"; strokeThickness: number; wordWrapWidth: number; lineHeight: number; letterSpacing: number; dropShadow: boolean; dropShadowAlpha: number; dropShadowAngle: number; dropShadowBlur: number; dropShadowColor: string; dropShadowDistance: number; breakWords: boolean; fontVariant: "normal" | "small-caps"; stroke: string; whiteSpace: "normal" | "pre" | "pre-line"; wordWrap: boolean; }, { align?: "left" | "center" | "right" | "justify" | undefined; breakWords?: boolean | undefined; dropShadow?: boolean | undefined; dropShadowAlpha?: number | undefined; dropShadowAngle?: number | undefined; dropShadowBlur?: number | undefined; dropShadowColor?: string | undefined; dropShadowDistance?: number | undefined; color?: string | undefined; fontFamily?: string | undefined; fontSize?: number | undefined; fontStyle?: "normal" | "italic" | "oblique" | undefined; fontVariant?: "normal" | "small-caps" | undefined; fontWeight?: "normal" | "bold" | "bolder" | "lighter" | "100" | "200" | "300" | "400" | "500" | "600" | "700" | "800" | "900" | undefined; letterSpacing?: number | undefined; lineHeight?: number | undefined; padding?: number | undefined; stroke?: string | undefined; strokeThickness?: number | undefined; whiteSpace?: "normal" | "pre" | "pre-line" | undefined; wordWrap?: boolean | undefined; wordWrapWidth?: number | undefined; }>; /** * Input style object accepted by `HtmlTextClip` when configuring Pixi `HTMLText`. */ export type HtmlTextStyle = zod.input; /** * Options for creating an HTML text clip. */ export interface HtmlTextClipOptions extends ClipOptions { htmlText: string; fonts?: string[]; htmlStyle?: HtmlTextStyle; } /** * Clip implementation that renders rich text via Pixi `HTMLText`. * * This variant is intended for styled HTML-like text workflows where the plain `TextClip` * text model is too limited. */ export declare class HtmlTextClip extends Clip> { htmlText: string; htmlSprite: PIXI.HTMLText; fonts: string[] | undefined; private htmlStyle; constructor(options: HtmlTextClipOptions); init(layerId: string): Promise; protected registerAnimatableProperties(): void; setHtmlText(text: string): void; getHtmlText(): string; setHtmlStyle(style: HtmlTextStyle, reset?: boolean): void; getHtmlStyle(): { color: string; padding: number; align: "left" | "center" | "right" | "justify"; fontSize: number; fontWeight: "normal" | "bold" | "bolder" | "lighter" | "100" | "200" | "300" | "400" | "500" | "600" | "700" | "800" | "900"; fontFamily: string; fontStyle: "normal" | "italic" | "oblique"; strokeThickness: number; wordWrapWidth: number; lineHeight: number; letterSpacing: number; dropShadow: boolean; dropShadowAlpha: number; dropShadowAngle: number; dropShadowBlur: number; dropShadowColor: string; dropShadowDistance: number; breakWords: boolean; fontVariant: "normal" | "small-caps"; stroke: string; whiteSpace: "normal" | "pre" | "pre-line"; wordWrap: boolean; }; loadFonts(fonts: string[]): Promise; getFonts(): string[] | undefined; updateVisibility(currentTime: number): void; update(currentTime: number): void; clone(): HtmlTextClip; 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; htmlText: string; htmlStyle: { color: string; padding: number; align: "left" | "center" | "right" | "justify"; fontSize: number; fontWeight: "normal" | "bold" | "bolder" | "lighter" | "100" | "200" | "300" | "400" | "500" | "600" | "700" | "800" | "900"; fontFamily: string; fontStyle: "normal" | "italic" | "oblique"; strokeThickness: number; wordWrapWidth: number; lineHeight: number; letterSpacing: number; dropShadow: boolean; dropShadowAlpha: number; dropShadowAngle: number; dropShadowBlur: number; dropShadowColor: string; dropShadowDistance: number; breakWords: boolean; fontVariant: "normal" | "small-caps"; stroke: string; whiteSpace: "normal" | "pre" | "pre-line"; wordWrap: boolean; }; text?: string | undefined; name?: string | undefined; customData?: [string, unknown][] | undefined; wrapMode?: import('../../../../types').WrapModeEnum | undefined; blendMode?: import('../../../../types').BlendModeEnum | undefined; style?: unknown; mediaDataId?: string | undefined; subtitlesId?: string | undefined; animationController?: { animationInDuration: number; animationOutDuration: number; animationLoopCount: number; loopSmoothing: number; animationDataIn?: { name: string; inOutOfRange: import("../../../..").OutOfRangeEnum; outOutOfRange: import("../../../..").OutOfRangeEnum; propertyAnimations: { property: string; keyframes: { value: string | number; time: number; easing: import("../../../..").EasingEnum; space: import("../../../..").AnimationSpaceEnum; relativeProperty?: string | undefined; }[]; inOutOfRange: import("../../../..").OutOfRangeEnum; outOutOfRange: import("../../../..").OutOfRangeEnum; }[]; speed?: number | undefined; offset?: number | undefined; amplification?: number | undefined; } | undefined; animationDataOut?: { name: string; inOutOfRange: import("../../../..").OutOfRangeEnum; outOutOfRange: import("../../../..").OutOfRangeEnum; propertyAnimations: { property: string; keyframes: { value: string | number; time: number; easing: import("../../../..").EasingEnum; space: import("../../../..").AnimationSpaceEnum; relativeProperty?: string | undefined; }[]; inOutOfRange: import("../../../..").OutOfRangeEnum; outOutOfRange: import("../../../..").OutOfRangeEnum; }[]; speed?: number | undefined; offset?: number | undefined; amplification?: number | undefined; } | undefined; animationDataLoop?: { name: string; inOutOfRange: import("../../../..").OutOfRangeEnum; outOutOfRange: import("../../../..").OutOfRangeEnum; propertyAnimations: { property: string; keyframes: { value: string | number; time: number; easing: import("../../../..").EasingEnum; space: import("../../../..").AnimationSpaceEnum; relativeProperty?: string | undefined; }[]; inOutOfRange: import("../../../..").OutOfRangeEnum; outOutOfRange: import("../../../..").OutOfRangeEnum; }[]; speed?: number | undefined; offset?: number | undefined; amplification?: number | undefined; } | undefined; } | undefined; clipMasks?: { wrapMode: import("../../../filter").MaskWrapModeEnum; id: string; clipId: string; }[] | undefined; propertyAnimator?: { tracks: { type: 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; fonts?: string[] | undefined; }; static deserialize(payload: object): HtmlTextClip; destroy(): void; } export {};