import type { NobjcObject } from "objc-js";
import type { _NSArray } from "../Foundation/NSArray.js";
import type { _NSCopying } from "../Foundation/NSCopying.js";
import type { _NSObject } from "../Foundation/NSObject.js";
import type { _NSSecureCoding } from "../Foundation/NSSecureCoding.js";
import type { _NSString } from "../Foundation/NSString.js";
import type { _NSURL } from "../Foundation/NSURL.js";
import type { _SKNode } from "./SKNode.js";
import type { _SKTexture } from "./SKTexture.js";
import type { _SKWarpGeometry } from "./SKWarpGeometry.js";
import type { _NSColor } from "../AppKit/NSColor.js";
import type { CGPoint } from "../structs/CGPoint.js";
import type { CGSize } from "../structs/CGSize.js";
import type { CGVector } from "../structs/CGVector.js";
import type { SKActionTimingMode } from "./SKActionTimingMode.js";
export declare class _SKAction extends _NSObject {
    static alloc(): _SKAction;
    static new(): _SKAction;
    init(): _SKAction;
    /**
     * Creates an action that moves a node relative to its current position @param delta A vector that describes the change to apply to the node’s position @param duration The duration of the animation, in seconds
     */
    static moveBy$duration$(delta: CGVector, duration: number): _SKAction;
    static moveByX$y$duration$(deltaX: number, deltaY: number, duration: number): _SKAction;
    /**
     * Creates an action that moves a node to a new position @param location The coordinates for the node’s new position @param duration The duration of the animation, in seconds
     */
    static moveTo$duration$(location: CGPoint, duration: number): _SKAction;
    static moveToX$duration$(x: number, duration: number): _SKAction;
    static moveToY$duration$(y: number, duration: number): _SKAction;
    /**
     * Creates an action that rotates the node by a relative value @param radians The amount to rotate the node, in radians @param duration The duration of the animation, in seconds
     */
    static rotateByAngle$duration$(radians: number, duration: number): _SKAction;
    /**
     * Creates an action that rotates the node counterclockwise to an absolute angle @param radians The angle to rotate the node to, in radians @param duration The duration of the animation
     */
    static rotateToAngle$duration$(radians: number, duration: number): _SKAction;
    /**
     * Creates an action that rotates the node to an absolute value @param radians The angle to rotate the node to, in radians @param duration The duration of the animation, in seconds @param shortestUnitArc If YES, then the rotation is performed in whichever direction results in the smallest rotation. If NO, then the rotation is interpolated
     */
    static rotateToAngle$duration$shortestUnitArc$(radians: number, duration: number, shortestUnitArc: boolean): _SKAction;
    /**
     * Creates an action that adjusts the size of a sprite @param width The amount to add to the sprite’s width @param height The amount to add to the sprite’s height @param duration The duration of the animation, in seconds
     */
    static resizeByWidth$height$duration$(width: number, height: number, duration: number): _SKAction;
    /**
     * Creates an action that changes the width and height of a sprite to a new absolute value @param width The new width of the sprite @param height The new height of the sprite @param duration The duration of the animation, in seconds
     */
    static resizeToWidth$height$duration$(width: number, height: number, duration: number): _SKAction;
    static resizeToWidth$duration$(width: number, duration: number): _SKAction;
    static resizeToHeight$duration$(height: number, duration: number): _SKAction;
    /**
     * Creates an action that changes the x and y scale values of a node by a relative value @param scale The amount to modify to the node’s x and y scale values @param duration The duration of the animation, in seconds
     */
    static scaleBy$duration$(scale: number, duration: number): _SKAction;
    static scaleXBy$y$duration$(xScale: number, yScale: number, duration: number): _SKAction;
    /**
     * Creates an action that changes the x and y scale values of a node by a relative value @param scale The new value for the node’s x and y scale values @param duration The duration of the animation, in seconds
     */
    static scaleTo$duration$(scale: number, duration: number): _SKAction;
    static scaleXTo$y$duration$(xScale: number, yScale: number, duration: number): _SKAction;
    static scaleXTo$duration$(scale: number, duration: number): _SKAction;
    static scaleYTo$duration$(scale: number, duration: number): _SKAction;
    /**
     * Adjust the sprite's xScale & yScale to achieve the desired size (in parent's coordinate space) @param duration The duration of the animation, in seconds
     */
    static scaleToSize$duration$(size: CGSize, duration: number): _SKAction;
    /**
     * Creates an action that runs a collection of actions sequentially @param actions An array of SKAction objects @discussion When the action executes, the first action in the sequence starts and runs to completion. Subsequent actions in the sequence run in a similar fashion until all of the actions in the sequence have executed. The duration of the sequence action is the sum of the durations of the actions in the sequence. This action is reversible; it creates a new sequence action that reverses the order of the actions. Each action in the reversed sequence is itself reversed. For example, if an action sequence is {1,2,3}, the reversed sequence would be {3R,2R,1R}.
     */
    static sequence$(actions: _NSArray): _SKAction;
    /**
     * Creates an action that runs a collection of actions concurrently @param actions An array of SKAction objects @discussion When the action executes, the actions that comprise the group all start immediately and run in parallel. The duration of the group action is the longest duration among the collection of actions. If an action in the group has a duration less than the group’s duration, the action completes, then idles until the group completes the remaining actions. This matters most when creating a repeating action that repeats a group.
     */
    static group$(actions: _NSArray): _SKAction;
    /**
     * Creates an action that repeats another action a specified number of times @param action The action to execute @param count The number of times to execute the action
     */
    static repeatAction$count$(action: _SKAction, count: number): _SKAction;
    /** Creates an action that repeats forever @param action The action to execute */
    static repeatActionForever$(action: _SKAction): _SKAction;
    /**
     * Creates an action that changes the alpha value of the node to 1.0 @param duration The duration of the animation, in seconds
     */
    static fadeInWithDuration$(duration: number): _SKAction;
    /**
     * Creates an action that changes the alpha value of the node to 0.0 @param duration The duration of the animation, in seconds
     */
    static fadeOutWithDuration$(duration: number): _SKAction;
    /**
     * Creates an action that adjusts the alpha value of a node by a relative value @param factor The amount to modify the node’s alpha value @param duration The duration of the animation, in seconds
     */
    static fadeAlphaBy$duration$(factor: number, duration: number): _SKAction;
    /**
     * Creates an action that adjusts the alpha value of a node to a new value @param alpha The new value of the node’s alpha @param duration The duration of the animation, in seconds
     */
    static fadeAlphaTo$duration$(alpha: number, duration: number): _SKAction;
    /** Creates an action that hides a node */
    static hide(): _SKAction;
    /** Creates an action that unhides a node */
    static unhide(): _SKAction;
    /**
     * Creates an action that changes a sprite’s texture @param texture The new texture to use on the sprite
     */
    static setTexture$(texture: _SKTexture): _SKAction;
    static setNormalTexture$(texture: _SKTexture): _SKAction;
    /**
     * Creates an action that changes a sprite’s texture, possibly resizing the sprite @param texture The new texture to use on the sprite @param resize If YES, the sprite is resized to match the new texture. If NO, the size of the sprite is unchanged.
     */
    static setTexture$resize$(texture: _SKTexture, resize: boolean): _SKAction;
    static setNormalTexture$resize$(texture: _SKTexture, resize: boolean): _SKAction;
    /**
     * Creates an action that animates changes to a sprite’s texture @param textures An array of textures to use when animating a sprite @param sec The amount of time that each texture is displayed
     */
    static animateWithTextures$timePerFrame$(textures: _NSArray, sec: number): _SKAction;
    static animateWithNormalTextures$timePerFrame$(textures: _NSArray, sec: number): _SKAction;
    /**
     * Creates an action that animates changes to a sprite’s texture @param textures An array of textures to use when animating a sprite @param sec The amount of time that each texture is displayed @param resize If YES, the sprite is resized to match each new texture. If NO, the size of the sprite remains at a constant size. @param restore If YES, When the action completes, the sprite’s texture is restored to the texture it had before the action completed. (If the resize parameter is YES, the sprite is resized to match the size of the original texture. If NO, when the action completes the sprite’s texture remains set to the final texture in the array.
     */
    static animateWithTextures$timePerFrame$resize$restore$(textures: _NSArray, sec: number, resize: boolean, restore: boolean): _SKAction;
    static animateWithNormalTextures$timePerFrame$resize$restore$(textures: _NSArray, sec: number, resize: boolean, restore: boolean): _SKAction;
    /**
     * Creates an action that plays a sound @param soundFile The name of a sound file in the app’s bundle @param wait If YES, then the duration of this action is the same as the length of the audio playback. If NO, the action is considered to have completed immediately. @discussion The file name must be the name or path of a file of a platform supported audio file format. Use a LinearPCM format audio file with 8 or 16 bits per channel for best performance
     */
    static playSoundFileNamed$waitForCompletion$(soundFile: _NSString, wait: boolean): _SKAction;
    /**
     * Creates an animation that animates a sprite’s color and blend factor @param color The new color for the sprite @param colorBlendFactor The new blend factor for the sprite @param duration The duration of the animation, in seconds
     */
    static colorizeWithColor$colorBlendFactor$duration$(color: _NSColor, colorBlendFactor: number, duration: number): _SKAction;
    static colorizeWithColorBlendFactor$duration$(colorBlendFactor: number, sec: number): _SKAction;
    /**
     * Creates an action that sets the falloff of a field @param falloff The new value for falloff @param duration The duration of the animation, in seconds @see SKFieldNode
     */
    static falloffTo$duration$(falloff: number, duration: number): _SKAction;
    /**
     * Creates an action that sets the falloff of a field @param falloff The value to modify falloff by @param duration The duration of the animation, in seconds @see SKFieldNode
     */
    static falloffBy$duration$(falloff: number, duration: number): _SKAction;
    /**
     * Creates an action that moves the node along a relative path, orienting the node to the path @param path A Core Graphics path whose coordinates are relative to the node’s current position @param duration The duration of the animation, in seconds
     */
    static followPath$duration$(path: Uint8Array, duration: number): _SKAction;
    /**
     * Creates an action that moves the node along a path @param path A Core Graphics path whose coordinates are relative to the node’s current position @param offset If YES, the points in the path are relative offsets to the node’s starting position. If NO, the points in the node are absolute coordinate values. @param orient If YES, the node’s zRotation property animates so that the node turns to follow the path. If NO, the zRotation property of the node is unchanged. @param duration The duration of the animation
     */
    static followPath$asOffset$orientToPath$duration$(path: Uint8Array, offset: boolean, orient: boolean, duration: number): _SKAction;
    /**
     * Creates an action that moves the node along a relative path, orienting the node to the path @param path A Core Graphics path whose coordinates are relative to the node’s current position @param speed The speed in pixels per second to move along the path
     */
    static followPath$speed$(path: Uint8Array, speed: number): _SKAction;
    static followPath$asOffset$orientToPath$speed$(path: Uint8Array, offset: boolean, orient: boolean, speed: number): _SKAction;
    /**
     * Creates an action that changes how fast the node executes actions by a relative value @param speed amount to modify the speed by @param duration The duration of the animation, in seconds
     */
    static speedBy$duration$(speed: number, duration: number): _SKAction;
    /**
     * Creates an action that changes how fast the node executes actions @param speed The new value for the node’s speed @param duration The duration of the animation, in seconds
     */
    static speedTo$duration$(speed: number, duration: number): _SKAction;
    /**
     * Creates an action that performs an inverse kinematic reach. This action must be run on a descendent of the rootNode for animation to occur. Running this action on the rootNode itself will not cause any animation to occur. @param position The position (in screen space) to reach for @param root Where to start the inverse kinematic operation from @param duration The duration of the animation, in seconds
     */
    static reachTo$rootNode$duration$(position: CGPoint, root: _SKNode, duration: number): _SKAction;
    /**
     * Creates an action that performs an inverse kinematic reach. This action must be run on a descendent of the rootNode for animation to occur. Running this action on the rootNode itself will not cause any animation to occur. @param position The position (in screen space) to reach for @param root Where to start the inverse kinematic operation from @param velocity The speed in points per second of the end node in the chain
     */
    static reachTo$rootNode$velocity$(position: CGPoint, root: _SKNode, velocity: number): _SKAction;
    /**
     * Creates an action that performs an inverse kinematic reach. This action must be run on a descendent of the rootNode for animation to occur. Running this action on the rootNode itself will not cause any animation to occur. @param node The node to reach for @param root Where to start the inverse kinematic operation from @param sec The duration of the animation, in seconds
     */
    static reachToNode$rootNode$duration$(node: _SKNode, root: _SKNode, sec: number): _SKAction;
    /**
     * Creates an action that performs an inverse kinematic reach. This action must be run on a descendent of the rootNode for animation to occur. Running this action on the rootNode itself will not cause any animation to occur. @param node The node to reach for @param root Where to start the inverse kinematic operation from @param velocity The speed in points per second of the end node in the chain
     */
    static reachToNode$rootNode$velocity$(node: _SKNode, root: _SKNode, velocity: number): _SKAction;
    /**
     * Creates an action that sets the strength of a field @param strength The new value for strength @param duration The duration of the animation, in seconds @see SKFieldNode
     */
    static strengthTo$duration$(strength: number, duration: number): _SKAction;
    /**
     * Creates an action that sets the strength of a field @param strength The value to modify strength by @param duration The duration of the animation, in seconds @see SKFieldNode
     */
    static strengthBy$duration$(strength: number, duration: number): _SKAction;
    /**
     * Creates an action that idles for a specified period of time @param duration The duration of the idle, in seconds
     */
    static waitForDuration$(duration: number): _SKAction;
    /**
     * Creates an action that idles for a randomized period of time @param duration The duration of the idle, in seconds @param durationRange The range of possible values for the duration
     */
    static waitForDuration$withRange$(duration: number, durationRange: number): _SKAction;
    /** Creates an action that removes the node from its parent */
    static removeFromParent(): _SKAction;
    /**
     * Creates an action that calls a method on an object @param selector The selector of the method to call @param target The target object
     */
    static performSelector$onTarget$(selector: string, target: NobjcObject): _SKAction;
    /** Creates an action that executes a block @param block The block to run */
    static runBlock$(block: () => void): _SKAction;
    /**
     * Creates an action that executes a block @param block The block to run @param queue The queue to perform the action on
     */
    static runBlock$queue$(block: () => void, queue: _NSObject): _SKAction;
    /**
     * Creates an action that runs an action on a named child object @param action the action to run @param name the name of a child object @see SKNode.name
     */
    static runAction$onChildWithName$(action: _SKAction, name: _NSString): _SKAction;
    /**
     * Creates an action that executes a block over a duration @param duration The duration of the animation, in seconds @param block The block to run. The block takes the following parameters: node The node on which the action is running. elapsedTime The amount of time that has passed in the animation.
     */
    static customActionWithDuration$actionBlock$(duration: number, block: (node: _SKNode, elapsedTime: number) => void): _SKAction;
    /**
     * Creates an action of the given name from an action file. @param name The name of the action
     */
    static actionNamed$(name: _NSString): _SKAction | null;
    /**
     * Creates an action of the given name from an action file with a new duration. @param name The name of the action @param duration The duration of the action
     */
    static actionNamed$duration$(name: _NSString, duration: number): _SKAction | null;
    /**
     * Creates an action of the given name from an action file. @param name The name of the action @param url The url of the file containing the action
     */
    static actionNamed$fromURL$(name: _NSString, url: _NSURL): _SKAction | null;
    /**
     * Creates an action of the given name from an action file with a new duration. @param name The name of the action @param url The url of the file containing the action @param duration The duration of the action
     */
    static actionNamed$fromURL$duration$(name: _NSString, url: _NSURL, duration: number): _SKAction | null;
    static changeChargeTo$duration$(v: number, duration: number): _SKAction;
    static changeChargeBy$duration$(v: number, duration: number): _SKAction;
    static changeMassTo$duration$(v: number, duration: number): _SKAction;
    static changeMassBy$duration$(v: number, duration: number): _SKAction;
    static applyForce$duration$(force: CGVector, duration: number): _SKAction;
    static applyForce$atPoint$duration$(force: CGVector, point: CGPoint, duration: number): _SKAction;
    static applyTorque$duration$(torque: number, duration: number): _SKAction;
    static applyImpulse$duration$(impulse: CGVector, duration: number): _SKAction;
    static applyImpulse$atPoint$duration$(impulse: CGVector, point: CGPoint, duration: number): _SKAction;
    static applyAngularImpulse$duration$(impulse: number, duration: number): _SKAction;
    static play(): _SKAction;
    static pause(): _SKAction;
    static stop(): _SKAction;
    static changePlaybackRateTo$duration$(v: number, duration: number): _SKAction;
    static changePlaybackRateBy$duration$(v: number, duration: number): _SKAction;
    static changeVolumeTo$duration$(v: number, duration: number): _SKAction;
    static changeVolumeBy$duration$(v: number, duration: number): _SKAction;
    /**
     * Animate from the node's current warpGeometry to a new one over the specified duration. If the numberOfColumns and numberOfRows match, a smooth interpolation will be performed from the node current warp.
     */
    static warpTo$duration$(warp: _SKWarpGeometry, duration: number): _SKAction | null;
    /**
     * Animate through an array of warps The numberOfColumns and numberOfRows must match for all warps. Times are specified in seconds and must be increasing values.
     */
    static animateWithWarps$times$(warps: _NSArray, times: _NSArray): _SKAction | null;
    /**
     * Animate through an array of warps The numberOfColumns and numberOfRows must match for all warps. Times are specified in seconds and must be increasing values. Optionally restore the original node's warpGeometry from before the action.
     */
    static animateWithWarps$times$restore$(warps: _NSArray, times: _NSArray, restore: boolean): _SKAction | null;
    static stereoPanTo$duration$(v: number, duration: number): _SKAction;
    static stereoPanBy$duration$(v: number, duration: number): _SKAction;
    static changeReverbTo$duration$(v: number, duration: number): _SKAction;
    static changeReverbBy$duration$(v: number, duration: number): _SKAction;
    static changeObstructionTo$duration$(v: number, duration: number): _SKAction;
    static changeObstructionBy$duration$(v: number, duration: number): _SKAction;
    static changeOcclusionTo$duration$(v: number, duration: number): _SKAction;
    static changeOcclusionBy$duration$(v: number, duration: number): _SKAction;
    /**
     * Creates an action that reverses the behavior of another action @return This method always returns an action object; however, not all actions are reversible
     */
    reversedAction(): _SKAction;
    /** The duration required to complete an action, in seconds. */
    duration(): number;
    setDuration$(value: number): void;
    /** The timing mode used to execute an action @see SKActionTimingMode */
    timingMode(): SKActionTimingMode;
    setTimingMode$(value: SKActionTimingMode): void;
    /**
     * When set, prodives a custom timing via a block. Applies after the 'timingMode' property is taken into account, defaults to nil @see SKActionTimingFunction
     */
    timingFunction(): (arg0: number) => number;
    setTimingFunction$(value: (arg0: number) => number): void;
    /** A speed factor that modifies how fast an action runs. Default value is 1.0 */
    speed(): number;
    setSpeed$(value: number): void;
}
export interface _SKAction extends _NSCopying, _NSSecureCoding {
}
