import type { _AUAudioUnit } from "../AudioToolbox/AUAudioUnit.js";
import type { _AVSpeechSynthesisProviderRequest } from "./AVSpeechSynthesisProviderRequest.js";
import type { _NSArray } from "../Foundation/NSArray.js";
export declare class _AVSpeechSynthesisProviderAudioUnit extends _AUAudioUnit {
    static alloc(): _AVSpeechSynthesisProviderAudioUnit;
    static new(): _AVSpeechSynthesisProviderAudioUnit;
    init(): _AVSpeechSynthesisProviderAudioUnit;
    /**
     * @brief Sends a new speech request to be synthesized @discussion Sends a new speech request to the synthesizer to render. When the synthesizer audio unit is finished generating audio buffers for the speech request, it should indicate this within its internal render block, @c AUInternalRenderBlock, specifically through the @c AudioUnitRenderActionFlags flag @c kAudioOfflineUnitRenderAction_Complete.
     */
    synthesizeSpeechRequest$(speechRequest: _AVSpeechSynthesisProviderRequest): void;
    /** @brief Informs the audio unit that the speech request job should be discarded. */
    cancelSpeechRequest(): void;
    /**
     * @brief Returns the voices this audio unit has available and ready for synthesis. @discussion This method should fetch and return the voices ready to synthesize that a user can select from (usually through Settings). Required for speech synthesizer audio unit extensions. An audio unit with a dynamic list of voices can override this property's getter to perform a more complex fetch.
     */
    speechVoices(): _NSArray;
    setSpeechVoices$(value: _NSArray): void;
    /**
     * @brief A property set by the host that is called by the audio unit to supply metadata for a speech request. @discussion A synthesizer should call this method when it has produced relevant data to the audio buffers it is sending back to the host. In some cases speech output may be delayed until these markers are delivered. For example, word highlighting depends on marker data from synthesizers in order to properly time which words are highlighted. Many speech synthesizers generate this information on the fly, while synthesizing the audio. The array of markers can reference future audio buffers that have yet to be delivered. There may be cases in which marker data is not fully known until further audio processing is done. In these cases, and other casers where marker data has changed, calling this block with marker data that contains perviously delivered audio buffer ranges will replace that audio buffer range's marker data, as it will be considered stale.
     */
    speechSynthesisOutputMetadataBlock(): ((arg0: _NSArray, arg1: _AVSpeechSynthesisProviderRequest) => void) | null;
    setSpeechSynthesisOutputMetadataBlock$(value: ((arg0: _NSArray, arg1: _AVSpeechSynthesisProviderRequest) => void) | null): void;
}
