import { EmbedData, EmbedElement, BlockElement, Editor, EmbedOptions, EMBED_TYPE, FilePreviewType, MediaData, BlockContentElement } from "../../core"; export default abstract class Media { type: EMBED_TYPE; tagName: string; icon: string; menuItemOrder: number; private _observeMap; constructor(type: EMBED_TYPE, tagName: 'img' | 'audio' | 'video' | 'div', icon: string, menuItemOrder: number); getMediaPreviewType(editor: Editor, data: MediaData): FilePreviewType; updateMedia(editor: Editor, embedContainer: BlockContentElement, media: HTMLDivElement, data: MediaData): void; updateEmbedInner(editor: Editor, embedContainer: BlockContentElement, media: HTMLDivElement, data: MediaData): void; supportSetHeight(editor: Editor, data: MediaData): boolean; getWidth(embed: EmbedElement): number | undefined; getHeight(embed: EmbedElement): number | undefined; abstract updateMediaSrc(editor: Editor, embedContainer: BlockContentElement, media: HTMLDivElement, src: string, data: MediaData): void; createElement(editor: Editor, embedContainer: BlockContentElement, data: EmbedData): EmbedElement; saveData(editor: Editor, embed: EmbedElement): EmbedData; setWidth(block: BlockElement, width: number): void; setHeight(block: BlockElement, height: number): void; updateData(editor: Editor, embed: EmbedElement, data: EmbedData): void; notify(block: BlockElement, embed: EmbedElement, name: string, data: any): void; hasUploadMarker(block: BlockElement): Boolean; updateUploadMark(uploadMarker: Element, percentage: string): void; getUploadMarker(block: BlockElement, embed: EmbedElement, data: any): Element; handleDisconnectObserver(embed: EmbedElement): void; handleEmbedObserver(markerContainer: HTMLElement, embed: EmbedElement): void; createUploadMarker(embed: EmbedElement): HTMLDivElement; getMediaElement(block: BlockElement): HTMLDivElement; getSrc(block: BlockElement): string; getUrl(block: BlockElement): string; handleFileChanged: (event: Event) => void; getMenuText(editor: Editor): string; getAccept(editor: Editor): string; getEmbedOptions(editor: Editor): EmbedOptions; isSupportMarkdown(): boolean; getAbstract(block: BlockElement, embed: EmbedElement): string; }