import type { NobjcObject } from "objc-js";
import type { _NSObject } from "../Foundation/NSObject.js";
import type { _GKNoise } from "./GKNoise.js";
export declare class _GKNoiseMap extends _NSObject {
    static alloc(): _GKNoiseMap;
    static new(): _GKNoiseMap;
    /**
     * Initializes a noise map with specified noise. @param noise The 3D noise from which to sample a 2D plane.
     */
    static noiseMapWithNoise$(noise: _GKNoise): _GKNoiseMap;
    /**
     * Initializes a noise map with specified noise and parameters. @param noise The 3D noise from which to sample a 2D plane. @param size The size of the 2D plane to extract from the 3D noise space, in noise space coordinates. @param origin The origin of the 2D plane to extract from the 3D noise space, in noise space coordinates. @param sampleCount The number of equally-spaced samples to make across the 2D plane. @param seamless Whether the values at the edges of the 2D plane are modified to allow seamless tiling of the extracted noise map.
     */
    static noiseMapWithNoise$size$origin$sampleCount$seamless$(noise: _GKNoise, size: NobjcObject, origin: NobjcObject, sampleCount: NobjcObject, seamless: boolean): _GKNoiseMap;
    /** Initializes a noise map with constant noise of 0.0 at all positions. */
    init(): _GKNoiseMap;
    /**
     * Initializes a noise map with specified noise. @param noise The 3D noise from which to sample a 2D plane.
     */
    initWithNoise$(noise: _GKNoise): _GKNoiseMap;
    /**
     * Initializes a noise map with specified noise and parameters. @param noise The 3D noise from which to sample a 2D plane. @param size The size of the 2D plane to extract from the 3D noise space, in noise space coordinates. @param origin The origin of the 2D plane to extract from the 3D noise space, in noise space coordinates. @param sampleCount The number of equally-spaced samples to make across the 2D plane. @param seamless Whether the values at the edges of the 2D plane are modified to allow seamless tiling of the extracted noise map.
     */
    initWithNoise$size$origin$sampleCount$seamless$(noise: _GKNoise, size: NobjcObject, origin: NobjcObject, sampleCount: NobjcObject, seamless: boolean): _GKNoiseMap;
    /**
     * The noise map value at the specified sample index of the 2D plane. @param position Sample index of the extracted 2D plane at which to query the value. Valid range is from 0 to sampleCount-1, inclusive. @return The noise map value at the specified sample index.
     */
    valueAtPosition$(position: NobjcObject): number;
    /**
     * The noise map value at the specified sample point of the 2D plane. Returns an interpolated value for points not aligned on integer boundaries. @param position Sample point of the extracted 2D plane at which to query the value. Valid range is from 0.0 to sampleCount-1.0, inclusive. @return The noise map value at the specified sample index. Returns an interpolated value for points not aligned on integer boundaries.
     */
    interpolatedValueAtPosition$(position: NobjcObject): number;
    /**
     * Sets the specified value to the noise map at the specified sample index of the 2D plane. @param value The noise map value to assign to the specified position. @param position Sample index of the extracted 2D plane at which to set the value. Valid range is from 0 to sampleCount-1, inclusive.
     */
    setValue$atPosition$(value: number, position: NobjcObject): void;
    /**
     * The size of the 2D plane to extract from the 3D noise space, in noise space coordinates. Used together with origin to determine the bounds of the extracted plane. A smaller size captures a more "zoomed in" view of the noise, and vice versa. @see origin
     */
    size(): NobjcObject;
    /**
     * The origin of the 2D plane to extract from the 3D noise space, in noise space coordinates. Used together with size to determine the bounds of the extracted plane. @see size
     */
    origin(): NobjcObject;
    /**
     * The number of equally-spaced samples to make across the 2D plane. A higher number of samples produces finer resolution at the expense of increased memory.
     */
    sampleCount(): NobjcObject;
    /**
     * Whether the values at the edges of the 2D plane are modified to allow seamless tiling of the extracted noise map.
     */
    seamless(): boolean;
}
