import { IconProp } from '@fortawesome/fontawesome-svg-core'; import { Doc } from '../../../../../fields/Doc'; export interface CursorData { x: number; y: number; width: number; } export interface Point { x: number; y: number; } export enum ImageToolType { GenerativeFill = 'Generative Fill', Cut = 'Cut', } export enum CutMode { IN, OUT, DRAW_IN, ERASE, } export interface ImageEditTool { type: ImageToolType; btnText: string; icon: IconProp; // this is the function that the image tool applies, so it can be defined depending on the tool applyFunc: (currCutType: CutMode, brushWidth: number, prevEdits: { url: string; saveRes: Doc | undefined }[], isFirstDoc: boolean) => Promise; // these optional parameters are here because different tools require different brush sizes and defaults sliderMin?: number; sliderMax?: number; sliderDefault?: number; } export interface ImageDimensions { width: number; height: number; }