import type { NobjcObject } from "objc-js";
import type { _NSCopying } from "../Foundation/NSCopying.js";
import type { _NSObject } from "../Foundation/NSObject.js";
import type { _NSSecureCoding } from "../Foundation/NSSecureCoding.js";
import type { CGPoint } from "../structs/CGPoint.js";
import type { CGSize } from "../structs/CGSize.js";
export declare class _SKRegion extends _NSObject {
    static alloc(): _SKRegion;
    static new(): _SKRegion;
    init(): _SKRegion;
    /** A shared infinite region */
    static infiniteRegion(): _SKRegion;
    /** Create a circular region with radius */
    initWithRadius$(radius: number): _SKRegion;
    /** Create a rectangular region of size */
    initWithSize$(size: CGSize): _SKRegion;
    /**
     * Create a region bounded by a CGPath. Note that this option can be costly to evaluate.
     */
    initWithPath$(path: Uint8Array): _SKRegion;
    /**
     * Create a new region that is the inverse of the current region. The inverse of the infiniteRegion is an empty region. Subclasses of SKRegion need to provide an implementation of inverseRegion.
     */
    inverseRegion(): _SKRegion;
    /** Create a new region that is the original region plus the supplied region */
    regionByUnionWithRegion$(region: _SKRegion): _SKRegion;
    /** Create a new region that is the original region minus the supplied region */
    regionByDifferenceFromRegion$(region: _SKRegion): _SKRegion;
    /**
     * Create a new region that is the region covered by the original region and the supplied region
     */
    regionByIntersectionWithRegion$(region: _SKRegion): _SKRegion;
    /** Test for containment */
    containsPoint$(point: CGPoint): boolean;
    path(): NobjcObject;
}
export interface _SKRegion extends _NSCopying, _NSSecureCoding {
}
