import type { BaseClientOptions, BaseRequestOptions } from "../../../../BaseClient";
import { type NormalizedClientOptions } from "../../../../BaseClient";
import * as core from "../../../../core";
import * as ElevenLabs from "../../../index";
import { RulesClient } from "../resources/rules/client/Client";
export declare namespace PronunciationDictionariesClient {
    type Options = BaseClientOptions;
    interface RequestOptions extends BaseRequestOptions {
    }
}
export declare class PronunciationDictionariesClient {
    protected readonly _options: NormalizedClientOptions<PronunciationDictionariesClient.Options>;
    protected _rules: RulesClient | undefined;
    constructor(options?: PronunciationDictionariesClient.Options);
    get rules(): RulesClient;
    /**
     * Creates a new pronunciation dictionary from a lexicon .PLS file
     *
     * @param {ElevenLabs.BodyAddAPronunciationDictionaryV1PronunciationDictionariesAddFromFilePost} request
     * @param {PronunciationDictionariesClient.RequestOptions} requestOptions - Request-specific configuration.
     *
     * @throws {@link ElevenLabs.UnprocessableEntityError}
     *
     * @example
     *     import { createReadStream } from "fs";
     *     await client.pronunciationDictionaries.createFromFile({
     *         name: "name"
     *     })
     */
    createFromFile(request: ElevenLabs.BodyAddAPronunciationDictionaryV1PronunciationDictionariesAddFromFilePost, requestOptions?: PronunciationDictionariesClient.RequestOptions): core.HttpResponsePromise<ElevenLabs.AddPronunciationDictionaryResponseModel>;
    private __createFromFile;
    /**
     * Creates a new pronunciation dictionary from provided rules.
     *
     * @param {ElevenLabs.BodyAddAPronunciationDictionaryV1PronunciationDictionariesAddFromRulesPost} request
     * @param {PronunciationDictionariesClient.RequestOptions} requestOptions - Request-specific configuration.
     *
     * @throws {@link ElevenLabs.UnprocessableEntityError}
     *
     * @example
     *     await client.pronunciationDictionaries.createFromRules({
     *         rules: [{
     *                 type: "alias",
     *                 stringToReplace: "Thailand",
     *                 alias: "tie-land"
     *             }],
     *         name: "My Dictionary"
     *     })
     */
    createFromRules(request: ElevenLabs.BodyAddAPronunciationDictionaryV1PronunciationDictionariesAddFromRulesPost, requestOptions?: PronunciationDictionariesClient.RequestOptions): core.HttpResponsePromise<ElevenLabs.AddPronunciationDictionaryResponseModel>;
    private __createFromRules;
    /**
     * Get metadata for a pronunciation dictionary
     *
     * @param {string} pronunciation_dictionary_id - The id of the pronunciation dictionary
     * @param {PronunciationDictionariesClient.RequestOptions} requestOptions - Request-specific configuration.
     *
     * @throws {@link ElevenLabs.UnprocessableEntityError}
     *
     * @example
     *     await client.pronunciationDictionaries.get("21m00Tcm4TlvDq8ikWAM")
     */
    get(pronunciation_dictionary_id: string, requestOptions?: PronunciationDictionariesClient.RequestOptions): core.HttpResponsePromise<ElevenLabs.GetPronunciationDictionaryWithRulesResponseModel>;
    private __get;
    /**
     * Partially update the pronunciation dictionary without changing the version
     *
     * @param {string} pronunciation_dictionary_id - The id of the pronunciation dictionary
     * @param {ElevenLabs.BodyUpdatePronunciationDictionaryV1PronunciationDictionariesPronunciationDictionaryIdPatch} request
     * @param {PronunciationDictionariesClient.RequestOptions} requestOptions - Request-specific configuration.
     *
     * @throws {@link ElevenLabs.UnprocessableEntityError}
     *
     * @example
     *     await client.pronunciationDictionaries.update("21m00Tcm4TlvDq8ikWAM")
     */
    update(pronunciation_dictionary_id: string, request?: ElevenLabs.BodyUpdatePronunciationDictionaryV1PronunciationDictionariesPronunciationDictionaryIdPatch, requestOptions?: PronunciationDictionariesClient.RequestOptions): core.HttpResponsePromise<ElevenLabs.GetPronunciationDictionaryMetadataResponse>;
    private __update;
    /**
     * Get a PLS file with a pronunciation dictionary version rules
     * @throws {@link ElevenLabs.UnprocessableEntityError}
     */
    download(dictionary_id: string, version_id: string, requestOptions?: PronunciationDictionariesClient.RequestOptions): core.HttpResponsePromise<ReadableStream<Uint8Array>>;
    private __download;
    /**
     * Get a list of the pronunciation dictionaries you have access to and their metadata
     *
     * @param {ElevenLabs.PronunciationDictionariesListRequest} request
     * @param {PronunciationDictionariesClient.RequestOptions} requestOptions - Request-specific configuration.
     *
     * @throws {@link ElevenLabs.UnprocessableEntityError}
     *
     * @example
     *     await client.pronunciationDictionaries.list({
     *         cursor: "cursor",
     *         pageSize: 1,
     *         sort: "creation_time_unix",
     *         sortDirection: "sort_direction"
     *     })
     */
    list(request?: ElevenLabs.PronunciationDictionariesListRequest, requestOptions?: PronunciationDictionariesClient.RequestOptions): core.HttpResponsePromise<ElevenLabs.GetPronunciationDictionariesMetadataResponseModel>;
    private __list;
}
