import type { BaseClientOptions, BaseRequestOptions } from "../../../../BaseClient";
import * as core from "../../../../core";
import * as Cohere from "../../../index";
export declare namespace Datasets {
    interface Options extends BaseClientOptions {
    }
    interface RequestOptions extends BaseRequestOptions {
    }
}
export declare class Datasets {
    protected readonly _options: Datasets.Options;
    constructor(_options?: Datasets.Options);
    /**
     * List datasets that have been created.
     *
     * @param {Cohere.DatasetsListRequest} request
     * @param {Datasets.RequestOptions} requestOptions - Request-specific configuration.
     *
     * @throws {@link Cohere.BadRequestError}
     * @throws {@link Cohere.UnauthorizedError}
     * @throws {@link Cohere.ForbiddenError}
     * @throws {@link Cohere.NotFoundError}
     * @throws {@link Cohere.UnprocessableEntityError}
     * @throws {@link Cohere.TooManyRequestsError}
     * @throws {@link Cohere.InvalidTokenError}
     * @throws {@link Cohere.ClientClosedRequestError}
     * @throws {@link Cohere.InternalServerError}
     * @throws {@link Cohere.NotImplementedError}
     * @throws {@link Cohere.ServiceUnavailableError}
     * @throws {@link Cohere.GatewayTimeoutError}
     *
     * @example
     *     await client.datasets.list({
     *         datasetType: "datasetType",
     *         before: new Date("2024-01-15T09:30:00.000Z"),
     *         after: new Date("2024-01-15T09:30:00.000Z"),
     *         limit: 1.1,
     *         offset: 1.1,
     *         validationStatus: "unknown"
     *     })
     */
    list(request?: Cohere.DatasetsListRequest, requestOptions?: Datasets.RequestOptions): core.HttpResponsePromise<Cohere.DatasetsListResponse>;
    private __list;
    /**
     * Create a dataset by uploading a file. See ['Dataset Creation'](https://docs.cohere.com/docs/datasets#dataset-creation) for more information.
     *
     * @param {core.file.Uploadable} data
     * @param {core.file.Uploadable | undefined} evalData
     * @param {Cohere.DatasetsCreateRequest} request
     * @param {Datasets.RequestOptions} requestOptions - Request-specific configuration.
     *
     * @throws {@link Cohere.BadRequestError}
     * @throws {@link Cohere.UnauthorizedError}
     * @throws {@link Cohere.ForbiddenError}
     * @throws {@link Cohere.NotFoundError}
     * @throws {@link Cohere.UnprocessableEntityError}
     * @throws {@link Cohere.TooManyRequestsError}
     * @throws {@link Cohere.InvalidTokenError}
     * @throws {@link Cohere.ClientClosedRequestError}
     * @throws {@link Cohere.InternalServerError}
     * @throws {@link Cohere.NotImplementedError}
     * @throws {@link Cohere.ServiceUnavailableError}
     * @throws {@link Cohere.GatewayTimeoutError}
     *
     * @example
     *     import { createReadStream } from "fs";
     *     await client.datasets.create(createReadStream("path/to/file"), createReadStream("path/to/file"), {
     *         name: "name",
     *         type: "embed-input",
     *         keepOriginalFile: true,
     *         skipMalformedInput: true,
     *         textSeparator: "text_separator",
     *         csvDelimiter: "csv_delimiter"
     *     })
     */
    create(data: core.file.Uploadable, evalData: core.file.Uploadable | undefined, request: Cohere.DatasetsCreateRequest, requestOptions?: Datasets.RequestOptions): core.HttpResponsePromise<Cohere.DatasetsCreateResponse>;
    private __create;
    /**
     * View the dataset storage usage for your Organization. Each Organization can have up to 10GB of storage across all their users.
     *
     * @param {Datasets.RequestOptions} requestOptions - Request-specific configuration.
     *
     * @throws {@link Cohere.BadRequestError}
     * @throws {@link Cohere.UnauthorizedError}
     * @throws {@link Cohere.ForbiddenError}
     * @throws {@link Cohere.NotFoundError}
     * @throws {@link Cohere.UnprocessableEntityError}
     * @throws {@link Cohere.TooManyRequestsError}
     * @throws {@link Cohere.InvalidTokenError}
     * @throws {@link Cohere.ClientClosedRequestError}
     * @throws {@link Cohere.InternalServerError}
     * @throws {@link Cohere.NotImplementedError}
     * @throws {@link Cohere.ServiceUnavailableError}
     * @throws {@link Cohere.GatewayTimeoutError}
     *
     * @example
     *     await client.datasets.getUsage()
     */
    getUsage(requestOptions?: Datasets.RequestOptions): core.HttpResponsePromise<Cohere.DatasetsGetUsageResponse>;
    private __getUsage;
    /**
     * Retrieve a dataset by ID. See ['Datasets'](https://docs.cohere.com/docs/datasets) for more information.
     *
     * @param {string} id
     * @param {Datasets.RequestOptions} requestOptions - Request-specific configuration.
     *
     * @throws {@link Cohere.BadRequestError}
     * @throws {@link Cohere.UnauthorizedError}
     * @throws {@link Cohere.ForbiddenError}
     * @throws {@link Cohere.NotFoundError}
     * @throws {@link Cohere.UnprocessableEntityError}
     * @throws {@link Cohere.TooManyRequestsError}
     * @throws {@link Cohere.InvalidTokenError}
     * @throws {@link Cohere.ClientClosedRequestError}
     * @throws {@link Cohere.InternalServerError}
     * @throws {@link Cohere.NotImplementedError}
     * @throws {@link Cohere.ServiceUnavailableError}
     * @throws {@link Cohere.GatewayTimeoutError}
     *
     * @example
     *     await client.datasets.get("id")
     */
    get(id: string, requestOptions?: Datasets.RequestOptions): core.HttpResponsePromise<Cohere.DatasetsGetResponse>;
    private __get;
    /**
     * Delete a dataset by ID. Datasets are automatically deleted after 30 days, but they can also be deleted manually.
     *
     * @param {string} id
     * @param {Datasets.RequestOptions} requestOptions - Request-specific configuration.
     *
     * @throws {@link Cohere.BadRequestError}
     * @throws {@link Cohere.UnauthorizedError}
     * @throws {@link Cohere.ForbiddenError}
     * @throws {@link Cohere.NotFoundError}
     * @throws {@link Cohere.UnprocessableEntityError}
     * @throws {@link Cohere.TooManyRequestsError}
     * @throws {@link Cohere.InvalidTokenError}
     * @throws {@link Cohere.ClientClosedRequestError}
     * @throws {@link Cohere.InternalServerError}
     * @throws {@link Cohere.NotImplementedError}
     * @throws {@link Cohere.ServiceUnavailableError}
     * @throws {@link Cohere.GatewayTimeoutError}
     *
     * @example
     *     await client.datasets.delete("id")
     */
    delete(id: string, requestOptions?: Datasets.RequestOptions): core.HttpResponsePromise<Record<string, unknown>>;
    private __delete;
    protected _getAuthorizationHeader(): Promise<string | undefined>;
}
