import { Editor, Element, Location, NodeEntry } from 'slate'; import { GetAboveByTypesOptions } from '../queries/getAboveByTypes'; import { Withable } from '../typings/with'; import { ImageCaptionElement, ImageFigureElement, ImageHostingResolvers, ImageSizeSteps, ImageTypes } from './common'; export type ImageGetAboveImageFigureOptions = GetAboveByTypesOptions; export type ImageGetAboveImageCaptionOptions = GetAboveByTypesOptions; export interface Image extends Withable { /** * An object which keys are `figure`, `image`, 'caption` and values are the corresponding element types. */ types: ImageTypes; /** * @see {ImageHostingResolvers} */ hostingResolvers?: ImageHostingResolvers; /** * @see {ImageSizeSteps} */ sizeSteps?: ImageSizeSteps; isImageUrl(url: string): boolean; getAboveImageFigure( editor: Editor, options?: ImageGetAboveImageFigureOptions ): NodeEntry | undefined; getAboveImageCaption( editor: Editor, options?: ImageGetAboveImageCaptionOptions ): NodeEntry | undefined; isSelectionInImage(editor: Editor): boolean; isSelectionInImageCaption(editor: Editor): boolean; isCollapsedOnImage(editor: Editor): boolean; createImageElement(src: string, hosting?: Hosting): ImageFigureElement; insertImage( editor: Editor, src: string, options?: { hosting?: Hosting; at?: Location; } ): void; resizeImage(editor: Editor, entry: NodeEntry, width: number): void; }