import type { _NSArray } from "../Foundation/NSArray.js";
import type { _NSNumber } from "../Foundation/NSNumber.js";
import type { _NSObject } from "../Foundation/NSObject.js";
import type { _NSString } from "../Foundation/NSString.js";
import type { _NSUUID } from "../Foundation/NSUUID.js";
import type { CATapMuteBehavior } from "./CATapMuteBehavior.js";
export declare class _CATapDescription extends _NSObject {
    static alloc(): _CATapDescription;
    static new(): _CATapDescription;
    init(): _CATapDescription;
    /**
     * Mix all given process audio streams down to stereo. Mono sources will be duplicated in both right and left channels. An NSArray of NSNumbers where each NSNumber holds an AudioObjectID of the process object to include in the tap
     */
    initStereoMixdownOfProcesses$(processesObjectIDsToIncludeInTap: _NSArray): _CATapDescription;
    /**
     * Mix all processes to a stereo stream except the given processes. Mono sources will be duplicated in both right and left channels. An NSArray of NSNumbers where each NSNumber holds an AudioObjectID of the process object to exclude from the tap. All other processes that output audio will be included in the tap.
     */
    initStereoGlobalTapButExcludeProcesses$(processesObjectIDsToExcludeFromTap: _NSArray): _CATapDescription;
    /**
     * Mix all given process audio streams audio to mono. An NSArray of NSNumbers where each NSNumber holds an AudioObjectID of the process object to include in the tap
     */
    initMonoMixdownOfProcesses$(processesObjectIDsToIncludeInTap: _NSArray): _CATapDescription;
    /**
     * Mix all processes to a mono stream except the given processes An NSArray of NSNumbers where each NSNumber holds an AudioObjectID of the process object to exclude from the tap. All other processes that output audio will be included in the tap.
     */
    initMonoGlobalTapButExcludeProcesses$(processesObjectIDsToExcludeFromTap: _NSArray): _CATapDescription;
    /**
     * Mix all given process audio streams destined for the selected device stream An NSArray of NSNumbers where each NSNumber holds an AudioObjectID of the process object to exclude from the tap. All other processes that output audio will be included in the tap. The device UID of the output device whose audio will be captured NSInteger that represents the index of the stream on the device whose audio will be captured. The format of the tap will match the format of this stream.
     */
    initWithProcesses$andDeviceUID$withStream$(processesObjectIDsToIncludeInTap: _NSArray, deviceUID: _NSString, stream: number): _CATapDescription;
    /**
     * Mix all process audio streams destined for the selected device stream except the given processes An NSArray of NSNumbers where each NSNumber holds an AudioObjectID of the process object to exclude from the tap. All other processes that output audio will be included in the tap. The device UID of the output device whose audio will be captured NSInteger that represents the index of the stream on the device whose audio will be captured. The format of the tap will match the format of this stream.
     */
    initExcludingProcesses$andDeviceUID$withStream$(processesObjectIDsToExcludeFromTap: _NSArray, deviceUID: _NSString, stream: number): _CATapDescription;
    /** Human readable name of this tap. */
    name(): _NSString;
    setName$(value: _NSString): void;
    /** UID of this tap. */
    UUID(): _NSUUID;
    setUUID$(value: _NSUUID): void;
    /**
     * An NSArray of NSNumbers where each NSNumber holds the AudioObjectID of a process object to tap or exclude.
     */
    processes(): _NSArray;
    setProcesses$(value: _NSArray): void;
    /**
     * An Array of Strings where each String holds the bundle ID of a process to tap or exclude.
     */
    bundleIDs(): _NSArray;
    setBundleIDs$(value: _NSArray): void;
    /** True if this description is a mono mixdown of channels. */
    mono(): boolean;
    setMono$(value: boolean): void;
    /**
     * True if this description should tap all processes except the process listed in the 'processes' property.
     */
    exclusive(): boolean;
    setExclusive$(value: boolean): void;
    /**
     * True if this description is a mono or stereo mix of the tapped device's channels.
     */
    mixdown(): boolean;
    setMixdown$(value: boolean): void;
    /** True if this tap is only visible to the client process that created the tap. */
    privateTap(): boolean;
    setPrivateTap$(value: boolean): void;
    /**
     * True if this tap should save tapped processes by bundle ID when they exit, and restore them to the tap when they start up again.
     */
    processRestoreEnabled(): boolean;
    setProcessRestoreEnabled$(value: boolean): void;
    /** Set the tap's mute behavior. See CATapMuteBehavior above. */
    muteBehavior(): CATapMuteBehavior;
    setMuteBehavior$(value: CATapMuteBehavior): void;
    /**
     * An optional deviceUID that will have a value if this tap only taps a specific hardware device
     */
    deviceUID(): _NSString | null;
    setDeviceUID$(value: _NSString | null): void;
    /**
     * An optional NSNumber that will have a value if this tap taps a specific device stream. The value represents the index of the hardware stream.
     */
    stream(): _NSNumber;
    setStream$(value: _NSNumber): void;
}
