import type { NobjcObject } from "objc-js";
import type { _NSArray } from "../Foundation/NSArray.js";
import type { _NSDictionary } from "../Foundation/NSDictionary.js";
import type { _NSObject } from "../Foundation/NSObject.js";
import type { _NSString } from "../Foundation/NSString.js";
import type { _NSURL } from "../Foundation/NSURL.js";
import type { _NSSpeechSynthesizerDelegate } from "./NSSpeechSynthesizerDelegate.js";
import type { NSSpeechBoundary } from "./NSSpeechBoundary.js";
import type { NSSpeechPropertyKey } from "./NSSpeechPropertyKey.js";
import type { NSSpeechSynthesizerVoiceName } from "./NSSpeechSynthesizerVoiceName.js";
export declare class _NSSpeechSynthesizer extends _NSObject {
    static alloc(): _NSSpeechSynthesizer;
    static new(): _NSSpeechSynthesizer;
    init(): _NSSpeechSynthesizer;
    static attributesForVoice$(voice: NSSpeechSynthesizerVoiceName): _NSDictionary;
    static anyApplicationSpeaking(): boolean;
    static defaultVoice(): NSSpeechSynthesizerVoiceName;
    static availableVoices(): _NSArray;
    initWithVoice$(voice: NSSpeechSynthesizerVoiceName | null): _NSSpeechSynthesizer | null;
    startSpeakingString$(string_: _NSString): boolean;
    startSpeakingString$toURL$(string_: _NSString, url: _NSURL): boolean;
    stopSpeaking(): void;
    stopSpeakingAtBoundary$(boundary: NSSpeechBoundary): void;
    pauseSpeakingAtBoundary$(boundary: NSSpeechBoundary): void;
    continueSpeaking(): void;
    voice(): NSSpeechSynthesizerVoiceName | null;
    setVoice$(voice: NSSpeechSynthesizerVoiceName | null): boolean;
    addSpeechDictionary$(speechDictionary: _NSDictionary): void;
    phonemesFromText$(text: _NSString): _NSString;
    objectForProperty$error$(property: NSSpeechPropertyKey, outError: NobjcObject | null): NobjcObject | null;
    setObject$forProperty$error$(object_: NobjcObject | null, property: NSSpeechPropertyKey, outError: NobjcObject | null): boolean;
    speaking(): boolean;
    delegate(): _NSSpeechSynthesizerDelegate | null;
    setDelegate$(value: _NSSpeechSynthesizerDelegate | null): void;
    rate(): number;
    setRate$(value: number): void;
    volume(): number;
    setVolume$(value: number): void;
    usesFeedbackWindow(): boolean;
    setUsesFeedbackWindow$(value: boolean): void;
}
