import type { _NSDraggingSession } from "./NSDraggingSession.js";
import type { CGPoint } from "../structs/CGPoint.js";
import type { NSDragOperation } from "./NSDragOperation.js";
import type { NSDraggingContext } from "./NSDraggingContext.js";
export interface _NSDraggingSource {
    /**
     * Declares what types of operations the source allows to be performed. Apple may provide more specific "within" values in the future. To account for this, for unrecongized localities, return the operation mask for the most specific context that you are concerned with. For example: switch(context) { case NSDraggingContextOutsideApplication: return ... break; case NSDraggingContextWithinApplication: default: return ... break; }
     */
    draggingSession$sourceOperationMaskForDraggingContext$?(session: _NSDraggingSession, context: NSDraggingContext): NSDragOperation;
    draggingSession$willBeginAtPoint$?(session: _NSDraggingSession, screenPoint: CGPoint): void;
    draggingSession$movedToPoint$?(session: _NSDraggingSession, screenPoint: CGPoint): void;
    draggingSession$endedAtPoint$operation$?(session: _NSDraggingSession, screenPoint: CGPoint, operation: NSDragOperation): void;
    ignoreModifierKeysForDraggingSession$?(session: _NSDraggingSession): boolean;
}
