import type { Connection } from './connection'; export declare const AssetType: { readonly video: "video"; readonly image: "image"; readonly audio: "audio"; readonly text: "text"; readonly caption: "caption"; }; export type AssetType = (typeof AssetType)[keyof typeof AssetType]; export declare const Fit: { readonly crop: "crop"; readonly cover: "cover"; readonly contain: "contain"; readonly none: null; }; export type Fit = (typeof Fit)[keyof typeof Fit]; export declare const Position: { readonly top: "top"; readonly bottom: "bottom"; readonly left: "left"; readonly right: "right"; readonly center: "center"; readonly topLeft: "top_left"; readonly topRight: "top_right"; readonly bottomLeft: "bottom_left"; readonly bottomRight: "bottom_right"; }; export type Position = (typeof Position)[keyof typeof Position]; export declare const Filter: { readonly blur: "blur"; readonly boost: "boost"; readonly contrast: "contrast"; readonly darken: "darken"; readonly greyscale: "greyscale"; readonly lighten: "lighten"; readonly muted: "muted"; readonly negative: "negative"; }; export type Filter = (typeof Filter)[keyof typeof Filter]; export declare const TextAlignment: { readonly top: "top"; readonly topRight: "top_right"; readonly right: "right"; readonly bottomRight: "bottom_right"; readonly bottom: "bottom"; readonly bottomLeft: "bottom_left"; readonly left: "left"; readonly topLeft: "top_left"; readonly center: "center"; }; export type TextAlignment = (typeof TextAlignment)[keyof typeof TextAlignment]; export declare const HorizontalAlignment: { readonly left: "left"; readonly center: "center"; readonly right: "right"; }; export type HorizontalAlignment = (typeof HorizontalAlignment)[keyof typeof HorizontalAlignment]; export declare const VerticalAlignment: { readonly top: "top"; readonly center: "center"; readonly bottom: "bottom"; }; export type VerticalAlignment = (typeof VerticalAlignment)[keyof typeof VerticalAlignment]; export declare const CaptionBorderStyle: { readonly outlineAndShadow: "outline_and_shadow"; readonly opaqueBox: "opaque_box"; }; export type CaptionBorderStyle = (typeof CaptionBorderStyle)[keyof typeof CaptionBorderStyle]; export declare const CaptionAlignment: { readonly bottomLeft: "bottom_left"; readonly bottomCenter: "bottom_center"; readonly bottomRight: "bottom_right"; readonly middleLeft: "middle_left"; readonly middleCenter: "middle_center"; readonly middleRight: "middle_right"; readonly topLeft: "top_left"; readonly topCenter: "top_center"; readonly topRight: "top_right"; }; export type CaptionAlignment = (typeof CaptionAlignment)[keyof typeof CaptionAlignment]; export declare const CaptionAnimation: { readonly boxHighlight: "box_highlight"; readonly colorHighlight: "color_highlight"; readonly reveal: "reveal"; readonly karaoke: "karaoke"; readonly impact: "impact"; readonly supersize: "supersize"; }; export type CaptionAnimation = (typeof CaptionAnimation)[keyof typeof CaptionAnimation]; export interface OffsetConfig { x?: number; y?: number; } export declare class Offset { x: number; y: number; constructor(config?: OffsetConfig); toJSON(): Record; } export interface CropConfig { top?: number; right?: number; bottom?: number; left?: number; } export declare class Crop { top: number; right: number; bottom: number; left: number; constructor(config?: CropConfig); toJSON(): Record; } export interface TransitionConfig { in?: string; out?: string; duration?: number; } export declare class Transition { in: string | undefined; out: string | undefined; duration: number; constructor(config?: TransitionConfig); toJSON(): Record; } export interface FontConfig { family?: string; size?: number; color?: string; opacity?: number; weight?: number; } export declare class Font { family: string; size: number; color: string; opacity: number; weight: number | undefined; constructor(config?: FontConfig); toJSON(): Record; } export interface BorderConfig { color?: string; width?: number; } export declare class Border { color: string; width: number; constructor(config?: BorderConfig); toJSON(): Record; } export interface ShadowConfig { color?: string; x?: number; y?: number; } export declare class Shadow { color: string; x: number; y: number; constructor(config?: ShadowConfig); toJSON(): Record; } export interface BackgroundConfig { width?: number; height?: number; color?: string; borderWidth?: number; opacity?: number; textAlignment?: TextAlignment; } export declare class Background { width: number; height: number; color: string; borderWidth: number; opacity: number; textAlignment: TextAlignment; constructor(config?: BackgroundConfig); toJSON(): Record; } export interface AlignmentConfig { horizontal?: HorizontalAlignment; vertical?: VerticalAlignment; } export declare class Alignment { horizontal: HorizontalAlignment; vertical: VerticalAlignment; constructor(config?: AlignmentConfig); toJSON(): Record; } export interface FontStylingConfig { name?: string; size?: number; bold?: boolean; italic?: boolean; underline?: boolean; strikeout?: boolean; scaleX?: number; scaleY?: number; spacing?: number; angle?: number; } export declare class FontStyling { name: string; size: number; bold: boolean; italic: boolean; underline: boolean; strikeout: boolean; scaleX: number; scaleY: number; spacing: number; angle: number; constructor(config?: FontStylingConfig); toJSON(): Record; } export interface BorderAndShadowConfig { style?: CaptionBorderStyle; outline?: number; outlineColor?: string; shadow?: number; } export declare class BorderAndShadow { style: CaptionBorderStyle; outline: number; outlineColor: string; shadow: number; constructor(config?: BorderAndShadowConfig); toJSON(): Record; } export interface PositioningConfig { alignment?: CaptionAlignment; marginL?: number; marginR?: number; marginV?: number; } export declare class Positioning { alignment: CaptionAlignment; marginL: number; marginR: number; marginV: number; constructor(config?: PositioningConfig); toJSON(): Record; } interface BaseAssetJSON { type: AssetType; [key: string]: unknown; } export interface EditorVideoAssetConfig { id: string; start?: number; volume?: number; crop?: Crop; } export declare class EditorVideoAsset { readonly type: "video"; id: string; start: number; volume: number; crop: Crop; constructor(config: EditorVideoAssetConfig); toJSON(): BaseAssetJSON; } export interface EditorImageAssetConfig { id: string; crop?: Crop; } export declare class EditorImageAsset { readonly type: "image"; id: string; crop: Crop; constructor(config: EditorImageAssetConfig); toJSON(): BaseAssetJSON; } export interface EditorAudioAssetConfig { id: string; start?: number; volume?: number; } export declare class EditorAudioAsset { readonly type: "audio"; id: string; start: number; volume: number; constructor(config: EditorAudioAssetConfig); toJSON(): BaseAssetJSON; } export interface EditorTextAssetConfig { text: string; font?: Font; border?: Border; shadow?: Shadow; background?: Background; alignment?: Alignment; tabsize?: number; lineSpacing?: number; width?: number; height?: number; } export declare class EditorTextAsset { readonly type: "text"; text: string; font: Font; border: Border | undefined; shadow: Shadow | undefined; background: Background | undefined; alignment: Alignment; tabsize: number; lineSpacing: number; width: number | undefined; height: number | undefined; constructor(config: EditorTextAssetConfig); toJSON(): BaseAssetJSON; } export interface CaptionAssetConfig { src?: string; font?: FontStyling; primaryColor?: string; secondaryColor?: string; backColor?: string; border?: BorderAndShadow; position?: Positioning; animation?: CaptionAnimation; } export declare class CaptionAsset { readonly type: "caption"; src: string; font: FontStyling; primaryColor: string; secondaryColor: string; backColor: string; border: BorderAndShadow; position: Positioning; animation: CaptionAnimation | undefined; constructor(config?: CaptionAssetConfig); toJSON(): BaseAssetJSON; } export type AnyEditorAsset = EditorVideoAsset | EditorImageAsset | EditorAudioAsset | EditorTextAsset | CaptionAsset; export interface ClipConfig { asset: AnyEditorAsset; duration: number; transition?: Transition; effect?: string; filter?: Filter; scale?: number; opacity?: number; fit?: Fit; position?: Position; offset?: Offset; zIndex?: number; } export declare class Clip { asset: AnyEditorAsset; duration: number; transition: Transition | undefined; effect: string | undefined; filter: Filter | undefined; scale: number; opacity: number; fit: Fit; position: Position; offset: Offset; zIndex: number; constructor(config: ClipConfig); toJSON(): Record; } export declare class TrackItem { start: number; clip: Clip; constructor(start: number, clip: Clip); toJSON(): Record; } export declare class Track { clips: TrackItem[]; zIndex: number; constructor(zIndex?: number); addClip(start: number, clip: Clip): void; toJSON(): Record; } export declare class EditorTimeline { #private; background: string; resolution: string; tracks: Track[]; streamUrl: string | null; playerUrl: string | null; constructor(connection: Connection); addTrack(track: Track): void; toJSON(): Record; generateStream(): Promise; downloadStream(streamUrl: string): Promise>; } export {};