import { Canvas, CanvasOptions, FabricObject, TPointerEvent } from 'fabric'; import { default as CanvasMixin } from './mixins/canvas'; import { default as TrackManager } from './managers/track-manager'; import { default as ItemManager } from './managers/item-manager'; import { default as TransitionManager } from './managers/transition-manager'; import { default as DragStateManager } from './managers/drag-state-manager'; import { default as SyncManager } from './managers/sync-manager'; import { Core } from '@openvideo/core'; import { ITimelineScaleState, ITrack, IClip, ITransitionClip, IUpdateStateOptions, CanvasSpacing, State } from './types'; import { default as EventEmitter } from './utils/event-emitter'; export interface ITimelineTrack extends ITrack { accepts?: string[]; magnetic?: boolean; static?: boolean; muted?: boolean; } interface Bounding { width: number; height: number; } export interface TimelineOptions extends CanvasOptions { bounding?: { width: number; height: number; }; onScroll?: OnScroll; onResizeCanvas?: OnResizeCanvas; tScale?: number; scale: ITimelineScaleState; itemTypes: string[]; sizesMap: Record; acceptsMap: Record; spacing?: CanvasSpacing; withTransitions?: string[]; } type OnScroll = (v: { scrollTop: number; scrollLeft: number; }) => void; type OnResizeCanvas = (v: { width: number; height: number; }) => void; interface Timeline extends Canvas, CanvasMixin { } declare class Timeline extends Canvas { static objectTypes: string[]; static registerItems(classes: Record): void; itemTypes: string[]; acceptsMap: Record; sizesMap: Record; objectTypes: string[]; tracks: ITimelineTrack[]; hoverCornerItem: boolean; trackItemsMap: Record; trackItemIds: string[]; transitionIds: string[]; transitionsMap: Record; scale: ITimelineScaleState; duration: number; bounding: Bounding; onScroll?: OnScroll; onResizeCanvas?: OnResizeCanvas; tScale: number; activeIds: string[]; spacing: CanvasSpacing; guideLineColor: string; withTransitions: string[]; emitter: EventEmitter>; tracksManager: TrackManager; itemsManager: ItemManager; transitionManager: TransitionManager; dragStateManager: DragStateManager; syncManager: SyncManager; core?: Core; constructor(canvasEl: HTMLCanvasElement, options: Partial & { scale: ITimelineScaleState; duration: number; guideLineColor?: string; core?: Core; }); getItemAccepts(itemType: string): string[]; getItemSize(itemType: string): number; private initializeCanvasDefaults; __onMouseDown(e: TPointerEvent): void; _setupCurrentTransform(e: TPointerEvent, target: FabricObject, alreadySelected: boolean): void; initEventListeners(): void; syncSelection(activeIds: string[]): void; syncTracksAndClips(data: { tracks: ITimelineTrack[]; duration: number; clips: IClip[]; }): void; syncTracks(data: { tracks: ITimelineTrack[]; changedTracks: string[]; }): void; syncClipProperties(data: { clips: IClip[]; state?: any; changedTrimIds?: string[]; changedDisplayIds?: string[]; }): void; syncScale(data: { scale: ITimelineScaleState; }): void; syncHistory(data: { tracks: ITimelineTrack[]; clips: IClip[]; }): void; syncAddOrRemoveClips(currentState: State): void; setActiveIds(activeIds: string[]): void; updateState(dataHistory?: IUpdateStateOptions): void; getUpdatedState(): { clips: IClip[]; tracks: ITimelineTrack[]; activeIds: string[]; duration: number; }; purge(): void; scrollTo({ scrollLeft, scrollTop }: { scrollLeft?: number; scrollTop?: number; }): void; setBounding(bounding: Bounding): void; calcBounding(skipViewportAdjust?: boolean): void; setViewportPos(posX: number, posY: number): void; setActiveTrackItemCoords(): void; getViewportPos(posX: number, posY: number): { x: number; y: number; }; setScale(scale: ITimelineScaleState): void; } export default Timeline;