import { AbstractTTSClient } from "../core/abstract-tts";
import type { SpeakOptions, TTSCredentials, UnifiedVoice } from "../types";
export interface ResembleTTSOptions extends SpeakOptions {
    voice?: string;
    providerOptions?: Record<string, unknown>;
}
export interface ResembleTTSCredentials extends TTSCredentials {
    apiKey?: string;
    baseURL?: string;
    properties?: Record<string, unknown> | string;
    propertiesJson?: string;
}
export declare class ResembleTTSClient extends AbstractTTSClient {
    private apiKey;
    private baseUrl;
    constructor(credentials?: ResembleTTSCredentials);
    private applyCredentialProperties;
    private prepareText;
    setVoice(voiceId: string): void;
    getProperty(property: string): any;
    setProperty(property: string, value: any): void;
    checkCredentials(): Promise<boolean>;
    protected getRequiredCredentials(): string[];
    protected _getVoices(): Promise<any[]>;
    protected _mapVoicesToUnified(rawVoices: any[]): Promise<UnifiedVoice[]>;
    synthToBytes(text: string, options?: ResembleTTSOptions): Promise<Uint8Array>;
    synthToBytestream(text: string, options?: ResembleTTSOptions): Promise<{
        audioStream: ReadableStream<Uint8Array>;
        wordBoundaries: Array<{
            text: string;
            offset: number;
            duration: number;
        }>;
    }>;
}
