import type { BaseClientOptions, BaseRequestOptions } from "../../../../BaseClient";
import * as core from "../../../../core";
import * as Cohere from "../../../index";
export declare namespace Finetuning {
    interface Options extends BaseClientOptions {
    }
    interface RequestOptions extends BaseRequestOptions {
    }
}
/**
 * Finetuning API (Beta)
 */
export declare class Finetuning {
    protected readonly _options: Finetuning.Options;
    constructor(_options?: Finetuning.Options);
    /**
     * Returns a list of fine-tuned models that the user has access to.
     *
     * @param {Cohere.FinetuningListFinetunedModelsRequest} request
     * @param {Finetuning.RequestOptions} requestOptions - Request-specific configuration.
     *
     * @throws {@link Cohere.BadRequestError}
     * @throws {@link Cohere.UnauthorizedError}
     * @throws {@link Cohere.ForbiddenError}
     * @throws {@link Cohere.NotFoundError}
     * @throws {@link Cohere.InternalServerError}
     * @throws {@link Cohere.ServiceUnavailableError}
     *
     * @example
     *     await client.finetuning.listFinetunedModels({
     *         pageSize: 1,
     *         pageToken: "page_token",
     *         orderBy: "order_by"
     *     })
     */
    listFinetunedModels(request?: Cohere.FinetuningListFinetunedModelsRequest, requestOptions?: Finetuning.RequestOptions): core.HttpResponsePromise<Cohere.finetuning.ListFinetunedModelsResponse>;
    private __listFinetunedModels;
    /**
     * Creates a new fine-tuned model. The model will be trained on the dataset specified in the request body. The training process may take some time, and the model will be available once the training is complete.
     *
     * @param {Cohere.finetuning.FinetunedModel} request
     * @param {Finetuning.RequestOptions} requestOptions - Request-specific configuration.
     *
     * @throws {@link Cohere.BadRequestError}
     * @throws {@link Cohere.UnauthorizedError}
     * @throws {@link Cohere.ForbiddenError}
     * @throws {@link Cohere.NotFoundError}
     * @throws {@link Cohere.InternalServerError}
     * @throws {@link Cohere.ServiceUnavailableError}
     *
     * @example
     *     await client.finetuning.createFinetunedModel({
     *         name: "name",
     *         settings: {
     *             baseModel: {
     *                 baseType: "BASE_TYPE_UNSPECIFIED"
     *             },
     *             datasetId: "dataset_id"
     *         }
     *     })
     */
    createFinetunedModel(request: Cohere.finetuning.FinetunedModel, requestOptions?: Finetuning.RequestOptions): core.HttpResponsePromise<Cohere.finetuning.CreateFinetunedModelResponse>;
    private __createFinetunedModel;
    /**
     * Retrieve a fine-tuned model by its ID.
     *
     * @param {string} id - The fine-tuned model ID.
     * @param {Finetuning.RequestOptions} requestOptions - Request-specific configuration.
     *
     * @throws {@link Cohere.BadRequestError}
     * @throws {@link Cohere.UnauthorizedError}
     * @throws {@link Cohere.ForbiddenError}
     * @throws {@link Cohere.NotFoundError}
     * @throws {@link Cohere.InternalServerError}
     * @throws {@link Cohere.ServiceUnavailableError}
     *
     * @example
     *     await client.finetuning.getFinetunedModel("id")
     */
    getFinetunedModel(id: string, requestOptions?: Finetuning.RequestOptions): core.HttpResponsePromise<Cohere.finetuning.GetFinetunedModelResponse>;
    private __getFinetunedModel;
    /**
     * Deletes a fine-tuned model. The model will be removed from the system and will no longer be available for use.
     * This operation is irreversible.
     *
     * @param {string} id - The fine-tuned model ID.
     * @param {Finetuning.RequestOptions} requestOptions - Request-specific configuration.
     *
     * @throws {@link Cohere.BadRequestError}
     * @throws {@link Cohere.UnauthorizedError}
     * @throws {@link Cohere.ForbiddenError}
     * @throws {@link Cohere.NotFoundError}
     * @throws {@link Cohere.InternalServerError}
     * @throws {@link Cohere.ServiceUnavailableError}
     *
     * @example
     *     await client.finetuning.deleteFinetunedModel("id")
     */
    deleteFinetunedModel(id: string, requestOptions?: Finetuning.RequestOptions): core.HttpResponsePromise<Cohere.finetuning.DeleteFinetunedModelResponse>;
    private __deleteFinetunedModel;
    /**
     * Updates the fine-tuned model with the given ID. The model will be updated with the new settings and name provided in the request body.
     *
     * @param {string} id - FinetunedModel ID.
     * @param {Cohere.FinetuningUpdateFinetunedModelRequest} request
     * @param {Finetuning.RequestOptions} requestOptions - Request-specific configuration.
     *
     * @throws {@link Cohere.BadRequestError}
     * @throws {@link Cohere.UnauthorizedError}
     * @throws {@link Cohere.ForbiddenError}
     * @throws {@link Cohere.NotFoundError}
     * @throws {@link Cohere.InternalServerError}
     * @throws {@link Cohere.ServiceUnavailableError}
     *
     * @example
     *     await client.finetuning.updateFinetunedModel("id", {
     *         name: "name",
     *         settings: {
     *             baseModel: {
     *                 baseType: "BASE_TYPE_UNSPECIFIED"
     *             },
     *             datasetId: "dataset_id"
     *         }
     *     })
     */
    updateFinetunedModel(id: string, request: Cohere.FinetuningUpdateFinetunedModelRequest, requestOptions?: Finetuning.RequestOptions): core.HttpResponsePromise<Cohere.finetuning.UpdateFinetunedModelResponse>;
    private __updateFinetunedModel;
    /**
     * Returns a list of events that occurred during the life-cycle of the fine-tuned model.
     * The events are ordered by creation time, with the most recent event first.
     * The list can be paginated using `page_size` and `page_token` parameters.
     *
     * @param {string} finetunedModelId - The parent fine-tuned model ID.
     * @param {Cohere.FinetuningListEventsRequest} request
     * @param {Finetuning.RequestOptions} requestOptions - Request-specific configuration.
     *
     * @throws {@link Cohere.BadRequestError}
     * @throws {@link Cohere.UnauthorizedError}
     * @throws {@link Cohere.ForbiddenError}
     * @throws {@link Cohere.NotFoundError}
     * @throws {@link Cohere.InternalServerError}
     * @throws {@link Cohere.ServiceUnavailableError}
     *
     * @example
     *     await client.finetuning.listEvents("finetuned_model_id", {
     *         pageSize: 1,
     *         pageToken: "page_token",
     *         orderBy: "order_by"
     *     })
     */
    listEvents(finetunedModelId: string, request?: Cohere.FinetuningListEventsRequest, requestOptions?: Finetuning.RequestOptions): core.HttpResponsePromise<Cohere.finetuning.ListEventsResponse>;
    private __listEvents;
    /**
     * Returns a list of metrics measured during the training of a fine-tuned model.
     * The metrics are ordered by step number, with the most recent step first.
     * The list can be paginated using `page_size` and `page_token` parameters.
     *
     * @param {string} finetunedModelId - The parent fine-tuned model ID.
     * @param {Cohere.FinetuningListTrainingStepMetricsRequest} request
     * @param {Finetuning.RequestOptions} requestOptions - Request-specific configuration.
     *
     * @throws {@link Cohere.BadRequestError}
     * @throws {@link Cohere.UnauthorizedError}
     * @throws {@link Cohere.ForbiddenError}
     * @throws {@link Cohere.NotFoundError}
     * @throws {@link Cohere.InternalServerError}
     * @throws {@link Cohere.ServiceUnavailableError}
     *
     * @example
     *     await client.finetuning.listTrainingStepMetrics("finetuned_model_id", {
     *         pageSize: 1,
     *         pageToken: "page_token"
     *     })
     */
    listTrainingStepMetrics(finetunedModelId: string, request?: Cohere.FinetuningListTrainingStepMetricsRequest, requestOptions?: Finetuning.RequestOptions): core.HttpResponsePromise<Cohere.finetuning.ListTrainingStepMetricsResponse>;
    private __listTrainingStepMetrics;
    protected _getAuthorizationHeader(): Promise<string | undefined>;
}
