import type { BaseClientOptions, BaseRequestOptions } from "../../../../BaseClient.mjs";
import { type NormalizedClientOptionsWithAuth } from "../../../../BaseClient.mjs";
import * as core from "../../../../core/index.mjs";
import * as Phonic from "../../../index.mjs";
export declare namespace ProjectsClient {
    type Options = BaseClientOptions;
    interface RequestOptions extends BaseRequestOptions {
    }
}
export declare class ProjectsClient {
    protected readonly _options: NormalizedClientOptionsWithAuth<ProjectsClient.Options>;
    constructor(options?: ProjectsClient.Options);
    /**
     * Returns all projects in a workspace.
     *
     * @param {ProjectsClient.RequestOptions} requestOptions - Request-specific configuration.
     *
     * @throws {@link Phonic.UnauthorizedError}
     * @throws {@link Phonic.InternalServerError}
     *
     * @example
     *     await client.projects.list()
     */
    list(requestOptions?: ProjectsClient.RequestOptions): core.HttpResponsePromise<Phonic.ProjectsListResponse>;
    private __list;
    /**
     * Creates a new project in a workspace.
     *
     * @param {Phonic.CreateProjectRequest} request
     * @param {ProjectsClient.RequestOptions} requestOptions - Request-specific configuration.
     *
     * @throws {@link Phonic.BadRequestError}
     * @throws {@link Phonic.UnauthorizedError}
     * @throws {@link Phonic.InternalServerError}
     *
     * @example
     *     await client.projects.create({
     *         name: "customer-support"
     *     })
     */
    create(request: Phonic.CreateProjectRequest, requestOptions?: ProjectsClient.RequestOptions): core.HttpResponsePromise<Phonic.ProjectsCreateResponse>;
    private __create;
    /**
     * Returns a project by name or ID.
     *
     * @param {string} nameOrId - The name or the ID of the project to get.
     * @param {ProjectsClient.RequestOptions} requestOptions - Request-specific configuration.
     *
     * @throws {@link Phonic.UnauthorizedError}
     * @throws {@link Phonic.ForbiddenError}
     * @throws {@link Phonic.NotFoundError}
     * @throws {@link Phonic.InternalServerError}
     *
     * @example
     *     await client.projects.get("nameOrId")
     */
    get(nameOrId: string, requestOptions?: ProjectsClient.RequestOptions): core.HttpResponsePromise<Phonic.ProjectsGetResponse>;
    private __get;
    /**
     * Deletes a project by name or ID.
     *
     * @param {string} nameOrId - The name or the ID of the project to delete.
     * @param {ProjectsClient.RequestOptions} requestOptions - Request-specific configuration.
     *
     * @throws {@link Phonic.UnauthorizedError}
     * @throws {@link Phonic.ForbiddenError}
     * @throws {@link Phonic.NotFoundError}
     * @throws {@link Phonic.ConflictError}
     * @throws {@link Phonic.InternalServerError}
     *
     * @example
     *     await client.projects.delete("nameOrId")
     */
    delete(nameOrId: string, requestOptions?: ProjectsClient.RequestOptions): core.HttpResponsePromise<Phonic.ProjectsDeleteResponse>;
    private __delete;
    /**
     * Updates a project by name or ID.
     *
     * @param {string} nameOrId - The name or the ID of the project to update.
     * @param {Phonic.UpdateProjectRequest} request
     * @param {ProjectsClient.RequestOptions} requestOptions - Request-specific configuration.
     *
     * @throws {@link Phonic.BadRequestError}
     * @throws {@link Phonic.UnauthorizedError}
     * @throws {@link Phonic.ForbiddenError}
     * @throws {@link Phonic.NotFoundError}
     * @throws {@link Phonic.InternalServerError}
     *
     * @example
     *     await client.projects.update("nameOrId", {
     *         name: "updated-customer-support",
     *         default_agent: "another-agent"
     *     })
     */
    update(nameOrId: string, request?: Phonic.UpdateProjectRequest, requestOptions?: ProjectsClient.RequestOptions): core.HttpResponsePromise<Phonic.ProjectsUpdateResponse>;
    private __update;
    /**
     * Returns all conversation evaluation prompts for a project.
     *
     * @param {string} id - The ID of the project.
     * @param {ProjectsClient.RequestOptions} requestOptions - Request-specific configuration.
     *
     * @throws {@link Phonic.UnauthorizedError}
     * @throws {@link Phonic.ForbiddenError}
     * @throws {@link Phonic.NotFoundError}
     * @throws {@link Phonic.InternalServerError}
     *
     * @example
     *     await client.projects.listEvalPrompts("id")
     */
    listEvalPrompts(id: string, requestOptions?: ProjectsClient.RequestOptions): core.HttpResponsePromise<Phonic.ProjectsListEvalPromptsResponse>;
    private __listEvalPrompts;
    /**
     * Creates a new conversation evaluation prompt for a project.
     *
     * @param {string} id - The ID of the project.
     * @param {Phonic.CreateConversationEvalPromptRequest} request
     * @param {ProjectsClient.RequestOptions} requestOptions - Request-specific configuration.
     *
     * @throws {@link Phonic.BadRequestError}
     * @throws {@link Phonic.UnauthorizedError}
     * @throws {@link Phonic.ForbiddenError}
     * @throws {@link Phonic.NotFoundError}
     * @throws {@link Phonic.InternalServerError}
     *
     * @example
     *     await client.projects.createEvalPrompt("id", {
     *         name: "test_prompt",
     *         prompt: "The assistant used the word chocolate in the conversation"
     *     })
     */
    createEvalPrompt(id: string, request: Phonic.CreateConversationEvalPromptRequest, requestOptions?: ProjectsClient.RequestOptions): core.HttpResponsePromise<Phonic.ProjectsCreateEvalPromptResponse>;
    private __createEvalPrompt;
    /**
     * Returns all conversation evaluation results for a project.
     *
     * @param {string} id - The ID of the project.
     * @param {ProjectsClient.RequestOptions} requestOptions - Request-specific configuration.
     *
     * @throws {@link Phonic.UnauthorizedError}
     * @throws {@link Phonic.ForbiddenError}
     * @throws {@link Phonic.NotFoundError}
     * @throws {@link Phonic.InternalServerError}
     *
     * @example
     *     await client.projects.listEvals("id")
     */
    listEvals(id: string, requestOptions?: ProjectsClient.RequestOptions): core.HttpResponsePromise<Phonic.ProjectsListEvalsResponse>;
    private __listEvals;
}
