import type { _SCNAction } from "./SCNAction.js";
import type { _NSArray } from "../Foundation/NSArray.js";
import type { _NSString } from "../Foundation/NSString.js";
export interface _SCNActionable {
    /**
     * @method runAction: @abstract Adds an action to the list of actions executed by the node.
     */
    runAction$?(action: _SCNAction): void;
    /**
     * @method runAction:completionHandler: @abstract Adds an action to the list of actions executed by the node. Your block is called when the action completes.
     */
    runAction$completionHandler$?(action: _SCNAction, block: (() => void) | null): void;
    /**
     * @method runAction:forKey: @abstract Adds an identifiable action to the list of actions executed by the node.
     */
    runAction$forKey$?(action: _SCNAction, key: _NSString | null): void;
    /**
     * @method runAction:forKey:completionHandler: @abstract Adds an identifiable action to the list of actions executed by the node. Your block is called when the action completes.
     */
    runAction$forKey$completionHandler$?(action: _SCNAction, key: _NSString | null, block: (() => void) | null): void;
    /**
     * @method actionForKey: @abstract Returns an action associated with a specific key.
     */
    actionForKey$?(key: _NSString): _SCNAction | null;
    /**
     * @method removeActionForKey: @abstract Removes an action associated with a specific key.
     */
    removeActionForKey$?(key: _NSString): void;
    /** @method removeAllActions @abstract Ends and removes all actions from the node. */
    removeAllActions?(): void;
    /**
     * @property hasActions @abstract Returns a Boolean value that indicates whether the node is executing actions.
     */
    hasActions?(): boolean;
    /**
     * @property actionKeys @abstract Returns an array containing the keys of all actions currently attached to the receiver.
     */
    actionKeys?(): _NSArray;
}
