import type { _AVAudioEnvironmentDistanceAttenuationParameters } from "./AVAudioEnvironmentDistanceAttenuationParameters.js";
import type { _AVAudioEnvironmentReverbParameters } from "./AVAudioEnvironmentReverbParameters.js";
import type { _AVAudioMixing } from "./AVAudioMixing.js";
import type { _AVAudioNode } from "./AVAudioNode.js";
import type { _NSArray } from "../Foundation/NSArray.js";
import type { AVAudio3DAngularOrientation } from "../structs/AVAudio3DAngularOrientation.js";
import type { AVAudio3DPoint } from "../structs/AVAudio3DPoint.js";
import type { AVAudio3DVectorOrientation } from "../structs/AVAudio3DVectorOrientation.js";
import type { AVAudioEnvironmentOutputType } from "./AVAudioEnvironmentOutputType.js";
export declare class _AVAudioEnvironmentNode extends _AVAudioNode {
    static alloc(): _AVAudioEnvironmentNode;
    static new(): _AVAudioEnvironmentNode;
    init(): _AVAudioEnvironmentNode;
    /**
     * Type of output hardware to be used with AVAudio3DMixingRenderingAlgorithmAuto Output hardware cannot be automatically determined in Manual Rendering modes or for wired output. This property can be used to override the output type if the correct type is known. Selecting an output type that does not match the actual hardware can produce unexpected results, especially with AVAudioEnvironmentOutputTypeBuiltInSpeakers. An app choosing a value other than AVAudio3DMixingOutputTypeAuto should listen to route change notifications and update the output type accordingly. Default: AVAudio3DMixingOutputTypeAuto
     */
    outputType(): AVAudioEnvironmentOutputType;
    setOutputType$(value: AVAudioEnvironmentOutputType): void;
    /**
     * The mixer's output volume. This accesses the mixer's output volume (0.0-1.0, inclusive).
     */
    outputVolume(): number;
    setOutputVolume$(value: number): void;
    /**
     * Find an unused input bus This will find and return the first input bus to which no other node is connected.
     */
    nextAvailableInputBus(): number;
    /**
     * Sets the listener's position in the 3D environment The coordinates are specified in meters. Default: The default position of the listener is at the origin. x: 0.0 y: 0.0 z: 0.0
     */
    listenerPosition(): AVAudio3DPoint;
    setListenerPosition$(value: AVAudio3DPoint): void;
    /**
     * The listener's orientation in the environment Changing listenerVectorOrientation will result in a corresponding change in listenerAngularOrientation. Default: The default orientation is with the listener looking directly along the negative Z axis. forward: (0, 0, -1) up: (0, 1, 0)
     */
    listenerVectorOrientation(): AVAudio3DVectorOrientation;
    setListenerVectorOrientation$(value: AVAudio3DVectorOrientation): void;
    /**
     * The listener's orientation in the environment Changing listenerAngularOrientation will result in a corresponding change in listenerVectorOrientation. All angles are specified in degrees. Default: The default orientation is with the listener looking directly along the negative Z axis. yaw: 0.0 pitch: 0.0 roll: 0.0
     */
    listenerAngularOrientation(): AVAudio3DAngularOrientation;
    setListenerAngularOrientation$(value: AVAudio3DAngularOrientation): void;
    /** The distance attenuation parameters for the environment */
    distanceAttenuationParameters(): _AVAudioEnvironmentDistanceAttenuationParameters;
    /** The reverb parameters for the environment */
    reverbParameters(): _AVAudioEnvironmentReverbParameters;
    /**
     * Returns an array of AVAudio3DMixingRenderingAlgorithm values based on the current output format AVAudioEnvironmentNode supports several rendering algorithms per input bus which are defined in <AVFAudio /AVAudioMixing.h>. Depending on the current output format of the environment node, this method returns an immutable array of the applicable rendering algorithms. This is important when the environment node has been configured to a multichannel output format because only a subset of the available rendering algorithms are designed to render to all of the channels. This information should be retrieved after a successful connection to the destination node via the engine's connect method.
     */
    applicableRenderingAlgorithms(): _NSArray;
    /**
     * On capable devices, listener orientation will be automatically rotated based on user's head-orientation if enabled.
     */
    listenerHeadTrackingEnabled(): boolean;
    setListenerHeadTrackingEnabled$(value: boolean): void;
}
export interface _AVAudioEnvironmentNode extends _AVAudioMixing {
}
