import type { NobjcObject } from "objc-js";
import type { _MIDI2DeviceInfo } from "./MIDI2DeviceInfo.js";
import type { _MIDIUMPEndpoint } from "./MIDIUMPEndpoint.js";
import type { _NSArray } from "../Foundation/NSArray.js";
import type { _NSString } from "../Foundation/NSString.js";
export declare class _MIDIUMPMutableEndpoint extends _MIDIUMPEndpoint {
    static alloc(): _MIDIUMPMutableEndpoint;
    static new(): _MIDIUMPMutableEndpoint;
    init(): _MIDIUMPMutableEndpoint;
    /**
     * @method initWithName:deviceInfo:productInstanceID:MIDIProtocol:destinationCallback @brief Initializer for creating a new MIDIUMPEndpoint. @param name The UMP endpoint name. @param deviceInfo The MIDI 2 device ID info for the UMP endpoint. @param productInstanceID The product instance ID, up to 42 characters. @param MIDIProtocol The MIDI protocol. @param destinationCallback The receive callback used to create the UMP endpoint's MIDI destination associated, which can be used to observe or process incoming MIDI traffic. @discussion This operation will fail if the device ID information is malformed or if virtual MIDI endpoint creation is not allowed (for example, on iOS, if your app doesn't list 'audio' in UIBackgroundModes).
     */
    initWithName$deviceInfo$productInstanceID$MIDIProtocol$destinationCallback$(name: _NSString, deviceInfo: _MIDI2DeviceInfo, productInstanceID: _NSString, MIDIProtocol: NobjcObject, destinationCallback: (arg0: NobjcObject, arg1: NobjcObject) => void): _MIDIUMPMutableEndpoint | null;
    /**
     * @method setName:error: @brief Set the endpoints name. @param name A string representing the name of the endpoint. @param error The out-error used if an error occurs. @return YES for success. NO in the event of a failure, in which case the error is returned in error. @discussion This operation will fail if the name could not be set.
     */
    setName$error$(name: _NSString, error: NobjcObject | null): boolean;
    /**
     * @method registerFunctionBlocks:markAsStatic:error: @brief Register or replace Function Blocks for a disabled client-created MIDIUMPEndpoint. @param functionBlocks A list of client-created Function Blocks to register. @param markAsStatic Whether the Function Block configuration may be updated. @param error The out-error used if an error occurs. @return YES for success. NO in the event of a failure, in which case the error is returned in error. @discussion This operation will fail if the array contains any disabled Function Blocks but the MIDIUMPEndpoint Function Block configuration is static. Returns YES if the Function Block configuration was set successfully.
     */
    registerFunctionBlocks$markAsStatic$error$(functionBlocks: _NSArray, markAsStatic: boolean, error: NobjcObject | null): boolean;
    /**
     * @method setEnabled:error: @brief Enable a mutable UMP endpoint in the system-wide UMP endpoint cache. @param isEnabled The enable state of the UMP endpoint. @param error The out-error used if an error occurred. @return YES for success. NO in the event of a failure, in which case the error is returned in error. @discussion A MIDIUMPMutableEndpoint must be cache enabled before it is visible via API. Note that Function Blocks may only be registered to uncached MIDIUMPMutableEndpoint objects.
     */
    setEnabled$error$(isEnabled: boolean, error: NobjcObject | null): boolean;
    /**
     * @property mutableFunctionBlocks @brief The Function Blocks associated with the UMP endpoint, if any.
     */
    mutableFunctionBlocks(): _NSArray;
    setMutableFunctionBlocks$(value: _NSArray): void;
    /** @property isEnabled @brief The enable state of the endpoint. */
    isEnabled(): boolean;
}
