import type { BaseClientOptions, BaseRequestOptions } from "../../../../../../BaseClient";
import { type NormalizedClientOptions } from "../../../../../../BaseClient";
import * as core from "../../../../../../core";
import * as ElevenLabs from "../../../../../index";
import { ChaptersClient } from "../resources/chapters/client/Client";
import { ContentClient } from "../resources/content/client/Client";
import { PronunciationDictionariesClient } from "../resources/pronunciationDictionaries/client/Client";
import { SnapshotsClient } from "../resources/snapshots/client/Client";
export declare namespace ProjectsClient {
    type Options = BaseClientOptions;
    interface RequestOptions extends BaseRequestOptions {
    }
}
export declare class ProjectsClient {
    protected readonly _options: NormalizedClientOptions<ProjectsClient.Options>;
    protected _pronunciationDictionaries: PronunciationDictionariesClient | undefined;
    protected _content: ContentClient | undefined;
    protected _snapshots: SnapshotsClient | undefined;
    protected _chapters: ChaptersClient | undefined;
    constructor(options?: ProjectsClient.Options);
    get pronunciationDictionaries(): PronunciationDictionariesClient;
    get content(): ContentClient;
    get snapshots(): SnapshotsClient;
    get chapters(): ChaptersClient;
    /**
     * Returns a list of your Studio projects with metadata.
     *
     * @param {ProjectsClient.RequestOptions} requestOptions - Request-specific configuration.
     *
     * @throws {@link ElevenLabs.UnprocessableEntityError}
     *
     * @example
     *     await client.studio.projects.list()
     */
    list(requestOptions?: ProjectsClient.RequestOptions): core.HttpResponsePromise<ElevenLabs.GetProjectsResponse>;
    private __list;
    /**
     * Creates a new Studio project, it can be either initialized as blank, from a document or from a URL.
     *
     * @param {ElevenLabs.studio.BodyCreateStudioProjectV1StudioProjectsPost} request
     * @param {ProjectsClient.RequestOptions} requestOptions - Request-specific configuration.
     *
     * @throws {@link ElevenLabs.UnprocessableEntityError}
     *
     * @example
     *     import { createReadStream } from "fs";
     *     await client.studio.projects.create({
     *         name: "name"
     *     })
     */
    create(request: ElevenLabs.studio.BodyCreateStudioProjectV1StudioProjectsPost, requestOptions?: ProjectsClient.RequestOptions): core.HttpResponsePromise<ElevenLabs.AddProjectResponseModel>;
    private __create;
    /**
     * Returns information about a specific Studio project. This endpoint returns more detailed information about a project than `GET /v1/studio`.
     *
     * @param {string} project_id - The ID of the project to be used. You can use the [List projects](/docs/api-reference/studio/get-projects) endpoint to list all the available projects.
     * @param {ElevenLabs.studio.ProjectsGetRequest} request
     * @param {ProjectsClient.RequestOptions} requestOptions - Request-specific configuration.
     *
     * @throws {@link ElevenLabs.UnprocessableEntityError}
     *
     * @example
     *     await client.studio.projects.get("21m00Tcm4TlvDq8ikWAM", {
     *         shareId: "share_id"
     *     })
     */
    get(project_id: string, request?: ElevenLabs.studio.ProjectsGetRequest, requestOptions?: ProjectsClient.RequestOptions): core.HttpResponsePromise<ElevenLabs.ProjectExtendedResponse>;
    private __get;
    /**
     * Updates the specified Studio project by setting the values of the parameters passed.
     *
     * @param {string} project_id - The ID of the project to be used. You can use the [List projects](/docs/api-reference/studio/get-projects) endpoint to list all the available projects.
     * @param {ElevenLabs.studio.BodyUpdateStudioProjectV1StudioProjectsProjectIdPost} request
     * @param {ProjectsClient.RequestOptions} requestOptions - Request-specific configuration.
     *
     * @throws {@link ElevenLabs.UnprocessableEntityError}
     *
     * @example
     *     await client.studio.projects.update("21m00Tcm4TlvDq8ikWAM", {
     *         name: "Project 1",
     *         defaultTitleVoiceId: "21m00Tcm4TlvDq8ikWAM",
     *         defaultParagraphVoiceId: "21m00Tcm4TlvDq8ikWAM"
     *     })
     */
    update(project_id: string, request: ElevenLabs.studio.BodyUpdateStudioProjectV1StudioProjectsProjectIdPost, requestOptions?: ProjectsClient.RequestOptions): core.HttpResponsePromise<ElevenLabs.EditProjectResponseModel>;
    private __update;
    /**
     * Deletes a Studio project.
     *
     * @param {string} project_id - The ID of the project to be used. You can use the [List projects](/docs/api-reference/studio/get-projects) endpoint to list all the available projects.
     * @param {ProjectsClient.RequestOptions} requestOptions - Request-specific configuration.
     *
     * @throws {@link ElevenLabs.UnprocessableEntityError}
     *
     * @example
     *     await client.studio.projects.delete("21m00Tcm4TlvDq8ikWAM")
     */
    delete(project_id: string, requestOptions?: ProjectsClient.RequestOptions): core.HttpResponsePromise<ElevenLabs.DeleteProjectResponseModel>;
    private __delete;
    /**
     * Starts conversion of a Studio project and all of its chapters.
     *
     * @param {string} project_id - The ID of the project to be used. You can use the [List projects](/docs/api-reference/studio/get-projects) endpoint to list all the available projects.
     * @param {ProjectsClient.RequestOptions} requestOptions - Request-specific configuration.
     *
     * @throws {@link ElevenLabs.UnprocessableEntityError}
     *
     * @example
     *     await client.studio.projects.convert("21m00Tcm4TlvDq8ikWAM")
     */
    convert(project_id: string, requestOptions?: ProjectsClient.RequestOptions): core.HttpResponsePromise<ElevenLabs.ConvertProjectResponseModel>;
    private __convert;
    /**
     * Returns a list of chapter IDs that have muted tracks in a project.
     *
     * @param {string} project_id - The ID of the Studio project.
     * @param {ProjectsClient.RequestOptions} requestOptions - Request-specific configuration.
     *
     * @throws {@link ElevenLabs.UnprocessableEntityError}
     *
     * @example
     *     await client.studio.projects.getMutedTracks("21m00Tcm4TlvDq8ikWAM")
     */
    getMutedTracks(project_id: string, requestOptions?: ProjectsClient.RequestOptions): core.HttpResponsePromise<ElevenLabs.ProjectMutedTracksResponseModel>;
    private __getMutedTracks;
}
