import type { NobjcObject } from "objc-js";
import type { _NSObject } from "../Foundation/NSObject.js";
import type { CGRect } from "../structs/CGRect.js";
import type { NSDraggingImageComponentKey } from "./NSDraggingImageComponentKey.js";
export declare class _NSDraggingImageComponent extends _NSObject {
    static alloc(): _NSDraggingImageComponent;
    static new(): _NSDraggingImageComponent;
    init(): _NSDraggingImageComponent;
    static draggingImageComponentWithKey$(key: NSDraggingImageComponentKey): _NSDraggingImageComponent;
    /** Designated initializer */
    initWithKey$(key: NSDraggingImageComponentKey): _NSDraggingImageComponent;
    /**
     * key must be unique for each component in an NSDraggingItem. You can create your own named components, but the following names have special meaning. NSDraggingImageComponentIconKey is an image of the item being dragged. NSDraggingImageComponentLabelKey represents a textual label associate with the item, for example, a file name.
     */
    key(): NSDraggingImageComponentKey;
    setKey$(value: NSDraggingImageComponentKey): void;
    /**
     * An object providing the image contents of the component, typically you set an NSImage, but may be anything CALayer accepts.
     */
    contents(): NobjcObject | null;
    setContents$(value: NobjcObject | null): void;
    /**
     * The coordinate space is the bounds of the parent NSDraggingItem. That is, {{0,0}, {draggingFrame.size.width, draggingFrame.size.height}} Note: NSDraggingItem does not clip its components.
     */
    frame(): CGRect;
    setFrame$(value: CGRect): void;
}
