import { DataNode, DataTree } from '../../types/data-structures';
import { DescrMode, onContextMenuType } from '../../types/global';
import { BooleanValue } from '../../types/legacy';
export interface ImageProps {
    /**
     * Internal prop to enable or disable infoIcon on hover
     */
    isCompact?: boolean;
    /**
     * Data of the image to display
     */
    data: DataTree | DataNode | undefined;
    /**
     * Display mode for the image text: "Code" (obj.k), "Text" (decode), or "Both"
     */
    ImageText?: ImageTextType;
    /**
     * Indicates if IMG is in a MultiSelect environment
     */
    MultiSelect?: BooleanValue;
    /**
     * Badge string in Smeup format: B(Txt(...)Typ(...)Ico(...))
     */
    Badge?: string;
    /**
     * Enable drag functionality for this image
     */
    Drag?: BooleanValue;
    /**
     * Enable the image to appear selected
     */
    selected?: boolean;
    /**
     * Enables img quick actions mode
     */
    QuickActions?: BooleanValue;
    /**
     * Fired when image is clicked
     */
    onClick?: (e: React.MouseEvent | React.KeyboardEvent) => void;
    /**
     * Fired when image is double-clicked
     */
    onDoubleClick?: (e: React.MouseEvent | React.KeyboardEvent) => void;
    /**
     * Fired on keyboard events
     */
    onKeyDown?: (e: React.MouseEvent | React.KeyboardEvent) => void;
    /**
     * Fired on mouse enter, returns quick action buttons
     */
    onActionsRequest?: (node: DataNode) => Promise<DataTree>;
    /**
     * Fired when a quick action button is clicked
     */
    onActionClick?: (node: DataNode, action: DataNode) => void;
    /**
     * Fired when drag begins, receives the DataNode being dragged
     */
    onDragStart?: (e: React.DragEvent, data: DataNode) => void;
    /**
     * Fired when drag ends
     */
    onDragEnd?: (e: React.DragEvent) => void;
    /**
     * Fired when something is dropped on this image, receives target DataNode
     */
    onDrop?: (e: React.DragEvent, data: DataNode) => void;
    /**
     * Fired when dragging over this image
     */
    onDragOver?: (e: React.DragEvent) => void;
    /**
     * Override the data serialized into dataTransfer during drag.
     * When provided, this data is used instead of the internal imageData.
     */
    dragData?: DataNode;
    /**
     * OnContextMenu callback
     */
    onContextMenu?: onContextMenuType;
}
export declare const ImageTextType: readonly ["Code", "Text", "Both"];
export type ImageTextType = (typeof ImageTextType)[number];
export declare const ImageTextToDescrMode: Record<ImageTextType, DescrMode>;
//# sourceMappingURL=image-types.d.ts.map