import { BaseDragAndDropService } from '../agStack/core/baseDragAndDropService'; import type { IComponent } from '../agStack/interfaces/iComponent'; import type { AgDragSource, AgDraggingEvent, AgDropTarget, IDragAndDropImage } from '../agStack/interfaces/iDragAndDrop'; import type { AgPromise } from '../agStack/utils/promise'; import type { BeanStub } from '../context/beanStub'; import type { BeanCollection } from '../context/context'; import type { AgEventTypeParams } from '../events'; import type { GridOptionsWithDefaults } from '../gridOptionsDefault'; import type { GridOptionsService } from '../gridOptionsService'; import type { AgGridCommon } from '../interfaces/iCommon'; import type { DragItem } from '../interfaces/iDragItem'; export declare enum DragSourceType { ToolPanel = 0, HeaderCell = 1, RowDrag = 2, ChartPanel = 3, AdvancedFilterBuilder = 4 } /** This is used internally. `DragSource` is used for external-facing things */ export interface GridDragSource = GridDraggingEvent> extends AgDragSource { /** Callback for entering the grid */ onGridEnter?: (dragItem: DragItem | null) => void; /** Callback for exiting the grid */ onGridExit?: (dragItem: DragItem | null) => void; } export interface DropTarget extends AgDropTarget { } /** This is used internally. `DraggingEvent` is used for external-facing things */ export interface GridDraggingEvent extends AgDraggingEvent, AgGridCommon { } export type DragAndDropIcon = 'pinned' | 'move' | 'left' | 'right' | 'group' | 'aggregate' | 'pivot' | 'notAllowed' | 'hide'; /** @internal AG_GRID_INTERNAL - Not for public use. Can change / be removed at any time. */ export declare class DragAndDropService extends BaseDragAndDropService, GridOptionsService, DragSourceType, DragItem, DragAndDropIcon, GridDraggingEvent, GridDragSource> { protected createEvent(event: AgDraggingEvent): GridDraggingEvent; protected createDragImageComp(dragSource: GridDragSource): AgPromise> | undefined; protected handleEnter(dragSource: GridDragSource | null, dragItem: DragItem | null): void; protected handleExit(dragSource: GridDragSource | null, dragItem: DragItem | null): void; protected warnNoBody(): void; isDropZoneWithinThisGrid(draggingEvent: AgDraggingEvent): boolean; registerGridDropTarget(elementFn: () => HTMLElement, ctrl: BeanStub): void; }