import type { NobjcObject } from "objc-js";
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 { _NSDictionary } from "../Foundation/NSDictionary.js";
import type { _NSString } from "../Foundation/NSString.js";
import type { _NSColor } from "../AppKit/NSColor.js";
import type { CGRect } from "../structs/CGRect.js";
import type { CGSize } from "../structs/CGSize.js";
import type { SKBlendMode } from "./SKBlendMode.js";
export declare class _SKShapeNode extends _SKNode {
    static alloc(): _SKShapeNode;
    static new(): _SKShapeNode;
    init(): _SKShapeNode;
    /**
     * Create a Shape Node using a CGPathRef, optionally centered at the Node's origin.
     */
    static shapeNodeWithPath$(path: Uint8Array): _SKShapeNode;
    static shapeNodeWithPath$centered$(path: Uint8Array, centered: boolean): _SKShapeNode;
    /** Create a Shape Node representing a Rect. */
    static shapeNodeWithRect$(rect: CGRect): _SKShapeNode;
    /** Create a Shape Node representing a rect centered at the Node's origin. */
    static shapeNodeWithRectOfSize$(size: CGSize): _SKShapeNode;
    /** Create a Shape Node representing a rounded rect with a corner radius */
    static shapeNodeWithRect$cornerRadius$(rect: CGRect, cornerRadius: number): _SKShapeNode;
    /**
     * Create a Shape Node representing a rounded rect with a corner radius centered at the Node's origin.
     */
    static shapeNodeWithRectOfSize$cornerRadius$(size: CGSize, cornerRadius: number): _SKShapeNode;
    /** Create a Shape Node representing an circle centered at the Node's origin. */
    static shapeNodeWithCircleOfRadius$(radius: number): _SKShapeNode;
    /** Create a Shape Node representing an Ellipse inscribed within a Rect */
    static shapeNodeWithEllipseInRect$(rect: CGRect): _SKShapeNode;
    /**
     * Create a Shape Node representing an Ellipse inscribed within a Rect centered at the Node's origin.
     */
    static shapeNodeWithEllipseOfSize$(size: CGSize): _SKShapeNode;
    /**
     * Create a Shape Node representing an a series of Points interpreted as line segments
     */
    static shapeNodeWithPoints$count$(points: NobjcObject, numPoints: number): _SKShapeNode;
    /**
     * Create a Shape Node representing a smoothed spline that passes through a series of Points
     */
    static shapeNodeWithSplinePoints$count$(points: NobjcObject, numPoints: number): _SKShapeNode;
    valueForAttributeNamed$(key: _NSString): _SKAttributeValue | null;
    setValue$forAttributeNamed$(value: _SKAttributeValue, key: _NSString): void;
    /** The CGPath to be drawn (in the Node's coordinate space) */
    path(): NobjcObject;
    setPath$(value: Uint8Array | null): void;
    /**
     * The color to draw the path with. (for no stroke use [SKColor clearColor]). Defaults to [SKColor whiteColor].
     */
    strokeColor(): _NSColor;
    setStrokeColor$(value: _NSColor): void;
    /** The color to fill the path with. Defaults to [SKColor clearColor] (no fill). */
    fillColor(): _NSColor;
    setFillColor$(value: _NSColor): void;
    /**
     * Sets the blend mode to use when composing the shape with the final framebuffer. @see SKNode.SKBlendMode
     */
    blendMode(): SKBlendMode;
    setBlendMode$(value: SKBlendMode): void;
    /**
     * If set to YES, the path stroke edges and caps is smoothed (antialiased) when drawn.
     */
    antialiased(): boolean;
    setAntialiased$(value: boolean): void;
    /**
     * The width used to stroke the path. Widths larger than 2.0 may result in artifacts. Defaults to 1.0.
     */
    lineWidth(): number;
    setLineWidth$(value: number): void;
    /** Add a glow to the path stroke of the specified width. Defaults to 0.0 (no glow) */
    glowWidth(): number;
    setGlowWidth$(value: number): void;
    /** The cap type that should be used when stroking a non-closed path */
    lineCap(): NobjcObject;
    setLineCap$(value: NobjcObject): void;
    /** The join type that should be used when stroking a path */
    lineJoin(): NobjcObject;
    setLineJoin$(value: NobjcObject): void;
    /**
     * When a miter join is used, the maximum ratio of miter length to line with to be used
     */
    miterLimit(): number;
    setMiterLimit$(value: number): void;
    /** The length of the node's path if it were to be stroked */
    lineLength(): number;
    /** An optional Texture used for the filling the Shape */
    fillTexture(): _SKTexture | null;
    setFillTexture$(value: _SKTexture | null): void;
    /** An optional SKShader used for the filling the Shape */
    fillShader(): _SKShader | null;
    setFillShader$(value: _SKShader | null): void;
    /** An optional Texture used for the Shape's stroke. */
    strokeTexture(): _SKTexture | null;
    setStrokeTexture$(value: _SKTexture | null): void;
    /** An optional SKShader used for the Shape's Stroke. */
    strokeShader(): _SKShader | null;
    setStrokeShader$(value: _SKShader | null): void;
    /**
     * Optional dictionary of SKAttributeValues Attributes can be used with custom SKShaders.
     */
    attributeValues(): _NSDictionary;
    setAttributeValues$(value: _NSDictionary): void;
}
