interface Position { x: number y: number width?: number height?: number } export enum CanvasSubTypes { Text = 'text', Image = 'image' } export interface TextItem { type: CanvasSubTypes.Text text: string position: Position extra?: any maxWidth?: number lineHeight?: number styled?: any del?: boolean } export interface ImageItem { type: CanvasSubTypes.Image src: string position: Position extra?: any } type CanvasItem = TextItem | ImageItem export interface Style { fillStyle?: string strokeStyle?: string } export type Element = HTMLElement | null export interface CanvasSettings { width: number height: number usePrimaryFont?: boolean bgColor?: string bgImage?: string ratio?: number } export type CanvaOptions = Array