/**
 * This file was auto-generated by Fern from our API Definition.
 */
import * as core from "../../../../core";
import { OpenAI } from "../../../..";
export declare namespace FineTune {
    interface Options {
        token: core.Supplier<core.BearerToken>;
        organization?: core.Supplier<string | undefined>;
        fetcher?: core.FetchFunction;
        streamingFetcher?: core.StreamingFetchFunction;
    }
}
export declare class FineTune {
    private readonly options;
    constructor(options: FineTune.Options);
    /**
     * List your organization's fine-tuning jobs
     * @throws {OpenAI.UnauthorizedError}
     * @throws {OpenAI.RateLimitError}
     * @throws {OpenAI.InternalServerError}
     */
    list(): Promise<OpenAI.ListFineTunesResponse>;
    /**
     * Creates a job that fine-tunes a specified model from a given dataset. Response includes details of the enqueued job including job status and the name of the fine-tuned models once complete. [Learn more about Fine-tuning](https://platform.openai.com/docs/guides/fine-tuning)
     *
     * @throws {OpenAI.UnauthorizedError}
     * @throws {OpenAI.RateLimitError}
     * @throws {OpenAI.InternalServerError}
     */
    create(request: OpenAI.CreateFineTuneRequest): Promise<OpenAI.FineTune>;
    /**
     * Gets info about the fine-tune job.
     * [Learn more about Fine-tuning](https://platform.openai.com/docs/guides/fine-tuning)
     *
     * @throws {OpenAI.UnauthorizedError}
     * @throws {OpenAI.RateLimitError}
     * @throws {OpenAI.InternalServerError}
     */
    retrieve(fineTuneId: OpenAI.FineTuneId): Promise<OpenAI.FineTune>;
    /**
     * Immediately cancel a fine-tune job.
     * @throws {OpenAI.UnauthorizedError}
     * @throws {OpenAI.RateLimitError}
     * @throws {OpenAI.InternalServerError}
     */
    cancel(fineTuneId: OpenAI.FineTuneId): Promise<OpenAI.FineTune>;
    /**
     * Get fine-grained status updates for a fine-tune job.
     *
     */
    listEvents(fineTuneId: OpenAI.FineTuneId, request: OpenAI.ListFineTuneEventsRequest & {
        stream?: false;
    }): Promise<OpenAI.ListFineTuneEventsResponse>;
    listEvents(fineTuneId: OpenAI.FineTuneId, request: OpenAI.ListFineTuneEventsRequest & {
        stream: true;
    }, cb: (data: OpenAI.FineTune) => void, opts?: Pick<core.StreamingFetcher.Args, "onError" | "onFinish" | "abortController" | "timeoutMs">): Promise<void>;
    private _getAuthorizationHeader;
}
