import type { _SKAttributeValue } from "./SKAttributeValue.js";
import type { _SKNode } from "./SKNode.js";
import type { _SKShader } from "./SKShader.js";
import type { _SKTexture } from "./SKTexture.js";
import type { _SKWarpable } from "./SKWarpable.js";
import type { _NSColor } from "../AppKit/NSColor.js";
import type { _NSCoder } from "../Foundation/NSCoder.js";
import type { _NSDictionary } from "../Foundation/NSDictionary.js";
import type { _NSString } from "../Foundation/NSString.js";
import type { CGPoint } from "../structs/CGPoint.js";
import type { CGRect } from "../structs/CGRect.js";
import type { CGSize } from "../structs/CGSize.js";
import type { SKBlendMode } from "./SKBlendMode.js";
export declare class _SKSpriteNode extends _SKNode {
    static alloc(): _SKSpriteNode;
    static new(): _SKSpriteNode;
    init(): _SKSpriteNode;
    /**
     * Create a sprite with an SKTexture and the specified size. @param texture the texture to reference for size and content @param size the size of the sprite in points
     */
    static spriteNodeWithTexture$size$(texture: _SKTexture | null, size: CGSize): _SKSpriteNode;
    /**
     * Create a sprite with an SKTexture and set its size to the SKTexture's pixel width/height. @param texture the texture to reference for size and content
     */
    static spriteNodeWithTexture$(texture: _SKTexture | null): _SKSpriteNode;
    static spriteNodeWithTexture$normalMap$(texture: _SKTexture | null, normalMap: _SKTexture | null): _SKSpriteNode;
    /**
     * Create a sprite with an image from your app bundle (An SKTexture is created for the image and set on the sprite. Its size is set to the SKTexture's pixel width/height) The position of the sprite is (0, 0) and the texture anchored at (0.5, 0.5), so that it is offset by half the width and half the height. Thus the sprite has the texture centered about the position. If you wish to have the texture anchored at a different offset set the anchorPoint to another pair of values in the interval from 0.0 up to and including 1.0. @param name is the name of an image file stored in the app bundle.
     */
    static spriteNodeWithImageNamed$(name: _NSString): _SKSpriteNode;
    static spriteNodeWithImageNamed$normalMapped$(name: _NSString, generateNormalMap: boolean): _SKSpriteNode;
    /**
     * Create a sprite with a color and the specified bounds. @param color the color to use for tinting the sprite. @param size the size of the sprite in points
     */
    static spriteNodeWithColor$size$(color: _NSColor, size: CGSize): _SKSpriteNode;
    /**
     * Designated Initializer Initialize a sprite with a color and the specified bounds. @param texture the texture to use (can be nil for colored sprite) @param color the color to use for tinting the sprite. @param size the size of the sprite in points
     */
    initWithTexture$color$size$(texture: _SKTexture | null, color: _NSColor, size: CGSize): _SKSpriteNode;
    /**
     * Initialize a sprite with an SKTexture and set its size to the SKTexture's width/height. @param texture the texture to reference for size and content
     */
    initWithTexture$(texture: _SKTexture | null): _SKSpriteNode;
    /**
     * Initialize a sprite with an image from your app bundle (An SKTexture is created for the image and set on the sprite. Its size is set to the SKTexture's pixel width/height) The position of the sprite is (0, 0) and the texture anchored at (0.5, 0.5), so that it is offset by half the width and half the height. Thus the sprite has the texture centered about the position. If you wish to have the texture anchored at a different offset set the anchorPoint to another pair of values in the interval from 0.0 up to and including 1.0. @param name the name or path of the image to load.
     */
    initWithImageNamed$(name: _NSString): _SKSpriteNode;
    /**
     * Initialize a sprite with a color and the specified bounds. @param color the color to use for tinting the sprite. @param size the size of the sprite in points
     */
    initWithColor$size$(color: _NSColor, size: CGSize): _SKSpriteNode;
    /** Support coding and decoding via NSKeyedArchiver. */
    initWithCoder$(aDecoder: _NSCoder): _SKSpriteNode | null;
    /**
     * Adjust the sprite's xScale & yScale to achieve the desired size (in parent's coordinate space)
     */
    scaleToSize$(size: CGSize): void;
    valueForAttributeNamed$(key: _NSString): _SKAttributeValue | null;
    setValue$forAttributeNamed$(value: _SKAttributeValue, key: _NSString): void;
    /** Texture to be drawn (is stretched to fill the sprite) */
    texture(): _SKTexture | null;
    setTexture$(value: _SKTexture | null): void;
    /**
     * Texture to use for generating normals that lights use to light this sprite. This will only be used if the sprite is lit by at least one light. @see SKLightNode @see lightingBitMask
     */
    normalTexture(): _SKTexture | null;
    setNormalTexture$(value: _SKTexture | null): void;
    /**
     * Bitmask to indicate being lit by a set of lights using overlapping lighting categories. A light whose category is set to a value that masks to non-zero using this mask will apply light to this sprite. When used together with a normal texture, complex lighting effects can be used.
     */
    lightingBitMask(): number;
    setLightingBitMask$(value: number): void;
    shadowCastBitMask(): number;
    setShadowCastBitMask$(value: number): void;
    shadowedBitMask(): number;
    setShadowedBitMask$(value: number): void;
    /**
     * Controls how the texture is stretched to fill the SKSpriteNode. Stretching is performed via a 9-part algorithm where the upper & lower middle parts are scaled horizontally, the left and right middle parts are scaled vertically, the center is scaled in both directions, and the corners are preserved. The centerRect defines the center region in a (0.0 - 1.0) coordinate space. Defaults to {(0,0) (1,1)} (the entire texture is stretched).
     */
    centerRect(): CGRect;
    setCenterRect$(value: CGRect): void;
    /**
     * Controls the blending between the texture and the sprite's color. The valid interval of values is from 0.0 up to and including 1.0. A value above or below that interval is clamped to the minimum (0.0) if below or the maximum (1.0) if above.
     */
    colorBlendFactor(): number;
    setColorBlendFactor$(value: number): void;
    /** Base color for the sprite (If no texture is present, the color still is drawn) */
    color(): _NSColor;
    setColor$(value: _NSColor): void;
    /**
     * Sets the blend mode to use when composing the sprite with the final framebuffer. @see SKNode.SKBlendMode
     */
    blendMode(): SKBlendMode;
    setBlendMode$(value: SKBlendMode): void;
    /**
     * Used to choose the location in the sprite that maps to its 'position' in the parent's coordinate space. The valid interval for each input is from 0.0 up to and including 1.0.
     */
    anchorPoint(): CGPoint;
    setAnchorPoint$(value: CGPoint): void;
    /** Set the size of the sprite (in parent's coordinate space) */
    size(): CGSize;
    setSize$(value: CGSize): void;
    shader(): _SKShader | null;
    setShader$(value: _SKShader | null): void;
    /**
     * Optional dictionary of SKAttributeValues Attributes can be used with custom SKShaders.
     */
    attributeValues(): _NSDictionary;
    setAttributeValues$(value: _NSDictionary): void;
}
export interface _SKSpriteNode extends _SKWarpable {
}
