import { BaseAPIRequestFactory } from "../../datadog-api-client-common/baseapi";
import { Configuration } from "../../datadog-api-client-common/configuration";
import { RequestContext, ResponseContext, HttpFile } from "../../datadog-api-client-common/http/http";
import { ModelLabFacetKeysResponse } from "../models/ModelLabFacetKeysResponse";
import { ModelLabFacetType } from "../models/ModelLabFacetType";
import { ModelLabFacetValuesResponse } from "../models/ModelLabFacetValuesResponse";
import { ModelLabProjectArtifactsResponse } from "../models/ModelLabProjectArtifactsResponse";
import { ModelLabProjectFacetType } from "../models/ModelLabProjectFacetType";
import { ModelLabProjectResponse } from "../models/ModelLabProjectResponse";
import { ModelLabProjectsResponse } from "../models/ModelLabProjectsResponse";
import { ModelLabRunArtifactsResponse } from "../models/ModelLabRunArtifactsResponse";
import { ModelLabRunResponse } from "../models/ModelLabRunResponse";
import { ModelLabRunsResponse } from "../models/ModelLabRunsResponse";
import { ModelLabRunStatus } from "../models/ModelLabRunStatus";
export declare class ModelLabAPIApiRequestFactory extends BaseAPIRequestFactory {
    deleteModelLabRun(runId: number, _options?: Configuration): Promise<RequestContext>;
    getModelLabArtifactContent(projectId: string, artifactPath: string, _options?: Configuration): Promise<RequestContext>;
    getModelLabProject(projectId: number, _options?: Configuration): Promise<RequestContext>;
    getModelLabRun(runId: number, _options?: Configuration): Promise<RequestContext>;
    listModelLabProjectArtifacts(projectId: number, _options?: Configuration): Promise<RequestContext>;
    listModelLabProjectFacetKeys(_options?: Configuration): Promise<RequestContext>;
    listModelLabProjectFacetValues(facetType: ModelLabProjectFacetType, facetName: string, _options?: Configuration): Promise<RequestContext>;
    listModelLabProjects(filter?: string, filterOwnerId?: string, filterTags?: string, sort?: string, pageSize?: number, pageNumber?: number, _options?: Configuration): Promise<RequestContext>;
    listModelLabRunArtifacts(runId: number, path?: string, _options?: Configuration): Promise<RequestContext>;
    listModelLabRunFacetKeys(filterProjectId: number, _options?: Configuration): Promise<RequestContext>;
    listModelLabRunFacetValues(filterProjectId: number, facetType: ModelLabFacetType, facetName: string, _options?: Configuration): Promise<RequestContext>;
    listModelLabRuns(filterId?: string, filter?: string, filterOwnerId?: string, filterStatus?: ModelLabRunStatus, filterProjectId?: number, filterTags?: string, filterParams?: string, filterParentRunId?: string, pinnedFirst?: boolean, includePinned?: boolean, includeDescendantMatches?: boolean, sort?: string, pageSize?: number, pageNumber?: number, _options?: Configuration): Promise<RequestContext>;
    pinModelLabRun(runId: number, _options?: Configuration): Promise<RequestContext>;
    starModelLabProject(projectId: number, _options?: Configuration): Promise<RequestContext>;
    unpinModelLabRun(runId: number, _options?: Configuration): Promise<RequestContext>;
    unstarModelLabProject(projectId: number, _options?: Configuration): Promise<RequestContext>;
}
export declare class ModelLabAPIApiResponseProcessor {
    /**
     * Unwraps the actual response sent by the server from the response context and deserializes the response content
     * to the expected objects
     *
     * @params response Response returned by the server for a request to deleteModelLabRun
     * @throws ApiException if the response code was not in [200, 299]
     */
    deleteModelLabRun(response: ResponseContext): Promise<void>;
    /**
     * Unwraps the actual response sent by the server from the response context and deserializes the response content
     * to the expected objects
     *
     * @params response Response returned by the server for a request to getModelLabArtifactContent
     * @throws ApiException if the response code was not in [200, 299]
     */
    getModelLabArtifactContent(response: ResponseContext): Promise<HttpFile>;
    /**
     * Unwraps the actual response sent by the server from the response context and deserializes the response content
     * to the expected objects
     *
     * @params response Response returned by the server for a request to getModelLabProject
     * @throws ApiException if the response code was not in [200, 299]
     */
    getModelLabProject(response: ResponseContext): Promise<ModelLabProjectResponse>;
    /**
     * Unwraps the actual response sent by the server from the response context and deserializes the response content
     * to the expected objects
     *
     * @params response Response returned by the server for a request to getModelLabRun
     * @throws ApiException if the response code was not in [200, 299]
     */
    getModelLabRun(response: ResponseContext): Promise<ModelLabRunResponse>;
    /**
     * Unwraps the actual response sent by the server from the response context and deserializes the response content
     * to the expected objects
     *
     * @params response Response returned by the server for a request to listModelLabProjectArtifacts
     * @throws ApiException if the response code was not in [200, 299]
     */
    listModelLabProjectArtifacts(response: ResponseContext): Promise<ModelLabProjectArtifactsResponse>;
    /**
     * Unwraps the actual response sent by the server from the response context and deserializes the response content
     * to the expected objects
     *
     * @params response Response returned by the server for a request to listModelLabProjectFacetKeys
     * @throws ApiException if the response code was not in [200, 299]
     */
    listModelLabProjectFacetKeys(response: ResponseContext): Promise<ModelLabFacetKeysResponse>;
    /**
     * Unwraps the actual response sent by the server from the response context and deserializes the response content
     * to the expected objects
     *
     * @params response Response returned by the server for a request to listModelLabProjectFacetValues
     * @throws ApiException if the response code was not in [200, 299]
     */
    listModelLabProjectFacetValues(response: ResponseContext): Promise<ModelLabFacetValuesResponse>;
    /**
     * Unwraps the actual response sent by the server from the response context and deserializes the response content
     * to the expected objects
     *
     * @params response Response returned by the server for a request to listModelLabProjects
     * @throws ApiException if the response code was not in [200, 299]
     */
    listModelLabProjects(response: ResponseContext): Promise<ModelLabProjectsResponse>;
    /**
     * Unwraps the actual response sent by the server from the response context and deserializes the response content
     * to the expected objects
     *
     * @params response Response returned by the server for a request to listModelLabRunArtifacts
     * @throws ApiException if the response code was not in [200, 299]
     */
    listModelLabRunArtifacts(response: ResponseContext): Promise<ModelLabRunArtifactsResponse>;
    /**
     * Unwraps the actual response sent by the server from the response context and deserializes the response content
     * to the expected objects
     *
     * @params response Response returned by the server for a request to listModelLabRunFacetKeys
     * @throws ApiException if the response code was not in [200, 299]
     */
    listModelLabRunFacetKeys(response: ResponseContext): Promise<ModelLabFacetKeysResponse>;
    /**
     * Unwraps the actual response sent by the server from the response context and deserializes the response content
     * to the expected objects
     *
     * @params response Response returned by the server for a request to listModelLabRunFacetValues
     * @throws ApiException if the response code was not in [200, 299]
     */
    listModelLabRunFacetValues(response: ResponseContext): Promise<ModelLabFacetValuesResponse>;
    /**
     * Unwraps the actual response sent by the server from the response context and deserializes the response content
     * to the expected objects
     *
     * @params response Response returned by the server for a request to listModelLabRuns
     * @throws ApiException if the response code was not in [200, 299]
     */
    listModelLabRuns(response: ResponseContext): Promise<ModelLabRunsResponse>;
    /**
     * Unwraps the actual response sent by the server from the response context and deserializes the response content
     * to the expected objects
     *
     * @params response Response returned by the server for a request to pinModelLabRun
     * @throws ApiException if the response code was not in [200, 299]
     */
    pinModelLabRun(response: ResponseContext): Promise<void>;
    /**
     * Unwraps the actual response sent by the server from the response context and deserializes the response content
     * to the expected objects
     *
     * @params response Response returned by the server for a request to starModelLabProject
     * @throws ApiException if the response code was not in [200, 299]
     */
    starModelLabProject(response: ResponseContext): Promise<void>;
    /**
     * Unwraps the actual response sent by the server from the response context and deserializes the response content
     * to the expected objects
     *
     * @params response Response returned by the server for a request to unpinModelLabRun
     * @throws ApiException if the response code was not in [200, 299]
     */
    unpinModelLabRun(response: ResponseContext): Promise<void>;
    /**
     * Unwraps the actual response sent by the server from the response context and deserializes the response content
     * to the expected objects
     *
     * @params response Response returned by the server for a request to unstarModelLabProject
     * @throws ApiException if the response code was not in [200, 299]
     */
    unstarModelLabProject(response: ResponseContext): Promise<void>;
}
export interface ModelLabAPIApiDeleteModelLabRunRequest {
    /**
     * The ID of the Model Lab run.
     * @type number
     */
    runId: number;
}
export interface ModelLabAPIApiGetModelLabArtifactContentRequest {
    /**
     * ID of the project.
     * @type string
     */
    projectId: string;
    /**
     * Path to the artifact relative to the project directory.
     * @type string
     */
    artifactPath: string;
}
export interface ModelLabAPIApiGetModelLabProjectRequest {
    /**
     * The ID of the Model Lab project.
     * @type number
     */
    projectId: number;
}
export interface ModelLabAPIApiGetModelLabRunRequest {
    /**
     * The ID of the Model Lab run.
     * @type number
     */
    runId: number;
}
export interface ModelLabAPIApiListModelLabProjectArtifactsRequest {
    /**
     * The ID of the Model Lab project.
     * @type number
     */
    projectId: number;
}
export interface ModelLabAPIApiListModelLabProjectFacetValuesRequest {
    /**
     * Facet type. Valid values: tag.
     * @type ModelLabProjectFacetType
     */
    facetType: ModelLabProjectFacetType;
    /**
     * Facet name.
     * @type string
     */
    facetName: string;
}
export interface ModelLabAPIApiListModelLabProjectsRequest {
    /**
     * Text search filter for project name or description.
     * @type string
     */
    filter?: string;
    /**
     * Filter by owner UUID.
     * @type string
     */
    filterOwnerId?: string;
    /**
     * Filter by tags. Format: key:value,key2:value2.
     * @type string
     */
    filterTags?: string;
    /**
     * Sort field. Valid values: name, created_at, updated_at. Prefix with '-' for descending order (e.g., -updated_at).
     * @type string
     */
    sort?: string;
    /**
     * Number of items per page. Maximum is 100.
     * @type number
     */
    pageSize?: number;
    /**
     * Page number (1-indexed).
     * @type number
     */
    pageNumber?: number;
}
export interface ModelLabAPIApiListModelLabRunArtifactsRequest {
    /**
     * The ID of the Model Lab run.
     * @type number
     */
    runId: number;
    /**
     * Optional subdirectory path within the run's artifacts.
     * @type string
     */
    path?: string;
}
export interface ModelLabAPIApiListModelLabRunFacetKeysRequest {
    /**
     * Filter by project ID.
     * @type number
     */
    filterProjectId: number;
}
export interface ModelLabAPIApiListModelLabRunFacetValuesRequest {
    /**
     * Filter by project ID.
     * @type number
     */
    filterProjectId: number;
    /**
     * Facet type. Valid values: parameter, attribute, tag, metric.
     * @type ModelLabFacetType
     */
    facetType: ModelLabFacetType;
    /**
     * Facet name.
     * @type string
     */
    facetName: string;
}
export interface ModelLabAPIApiListModelLabRunsRequest {
    /**
     * Filter by run ID(s). Comma-separated list for multiple IDs.
     * @type string
     */
    filterId?: string;
    /**
     * Text search filter for run name or description.
     * @type string
     */
    filter?: string;
    /**
     * Filter by owner UUID.
     * @type string
     */
    filterOwnerId?: string;
    /**
     * Filter by run status. Valid values: pending, running, completed, failed, killed, unresponsive, paused.
     * @type ModelLabRunStatus
     */
    filterStatus?: ModelLabRunStatus;
    /**
     * Filter by project ID.
     * @type number
     */
    filterProjectId?: number;
    /**
     * Filter by tags. Format: key:value,key2:value2.
     * @type string
     */
    filterTags?: string;
    /**
     * Filter by params. Format: key:value,key2:>0.5,key3:true.
     * @type string
     */
    filterParams?: string;
    /**
     * Filter by parent run ID. Use 'null' to return only root runs (runs with no parent).
     * @type string
     */
    filterParentRunId?: string;
    /**
     * Sort pinned runs before non-pinned runs. Pinned runs are ordered by pin time descending.
     * @type boolean
     */
    pinnedFirst?: boolean;
    /**
     * Include all runs pinned by the current user, regardless of other filters.
     * @type boolean
     */
    includePinned?: boolean;
    /**
     * When true, also return runs whose descendants match the active filters. The descendant_match field in each result indicates whether the run was included via a descendant match.
     * @type boolean
     */
    includeDescendantMatches?: boolean;
    /**
     * Sort field. Valid values: name, created_at, updated_at, duration. Prefix with '-' for descending order (e.g., -updated_at).
     * @type string
     */
    sort?: string;
    /**
     * Number of items per page. Maximum is 100.
     * @type number
     */
    pageSize?: number;
    /**
     * Page number (1-indexed).
     * @type number
     */
    pageNumber?: number;
}
export interface ModelLabAPIApiPinModelLabRunRequest {
    /**
     * The ID of the Model Lab run.
     * @type number
     */
    runId: number;
}
export interface ModelLabAPIApiStarModelLabProjectRequest {
    /**
     * The ID of the Model Lab project.
     * @type number
     */
    projectId: number;
}
export interface ModelLabAPIApiUnpinModelLabRunRequest {
    /**
     * The ID of the Model Lab run.
     * @type number
     */
    runId: number;
}
export interface ModelLabAPIApiUnstarModelLabProjectRequest {
    /**
     * The ID of the Model Lab project.
     * @type number
     */
    projectId: number;
}
export declare class ModelLabAPIApi {
    private requestFactory;
    private responseProcessor;
    private configuration;
    constructor(configuration: Configuration, requestFactory?: ModelLabAPIApiRequestFactory, responseProcessor?: ModelLabAPIApiResponseProcessor);
    /**
     * Delete a Model Lab run by its ID.
     * @param param The request object
     */
    deleteModelLabRun(param: ModelLabAPIApiDeleteModelLabRunRequest, options?: Configuration): Promise<void>;
    /**
     * Download the raw content of a Model Lab artifact file.
     * @param param The request object
     */
    getModelLabArtifactContent(param: ModelLabAPIApiGetModelLabArtifactContentRequest, options?: Configuration): Promise<HttpFile>;
    /**
     * Get a single Model Lab project by its ID.
     * @param param The request object
     */
    getModelLabProject(param: ModelLabAPIApiGetModelLabProjectRequest, options?: Configuration): Promise<ModelLabProjectResponse>;
    /**
     * Get a single Model Lab run by its ID.
     * @param param The request object
     */
    getModelLabRun(param: ModelLabAPIApiGetModelLabRunRequest, options?: Configuration): Promise<ModelLabRunResponse>;
    /**
     * List all artifact files for a specific Model Lab project.
     * @param param The request object
     */
    listModelLabProjectArtifacts(param: ModelLabAPIApiListModelLabProjectArtifactsRequest, options?: Configuration): Promise<ModelLabProjectArtifactsResponse>;
    /**
     * List all available facet keys for filtering Model Lab projects.
     * @param param The request object
     */
    listModelLabProjectFacetKeys(options?: Configuration): Promise<ModelLabFacetKeysResponse>;
    /**
     * List available facet values for a specific project facet key.
     * @param param The request object
     */
    listModelLabProjectFacetValues(param: ModelLabAPIApiListModelLabProjectFacetValuesRequest, options?: Configuration): Promise<ModelLabFacetValuesResponse>;
    /**
     * List all Model Lab projects for the current organization.
     * @param param The request object
     */
    listModelLabProjects(param?: ModelLabAPIApiListModelLabProjectsRequest, options?: Configuration): Promise<ModelLabProjectsResponse>;
    /**
     * List artifact files for a specific Model Lab run.
     * @param param The request object
     */
    listModelLabRunArtifacts(param: ModelLabAPIApiListModelLabRunArtifactsRequest, options?: Configuration): Promise<ModelLabRunArtifactsResponse>;
    /**
     * List all available facet keys for filtering Model Lab runs.
     * @param param The request object
     */
    listModelLabRunFacetKeys(param: ModelLabAPIApiListModelLabRunFacetKeysRequest, options?: Configuration): Promise<ModelLabFacetKeysResponse>;
    /**
     * List available facet values for a specific run facet key.
     * @param param The request object
     */
    listModelLabRunFacetValues(param: ModelLabAPIApiListModelLabRunFacetValuesRequest, options?: Configuration): Promise<ModelLabFacetValuesResponse>;
    /**
     * List all Model Lab runs for the current organization.
     * @param param The request object
     */
    listModelLabRuns(param?: ModelLabAPIApiListModelLabRunsRequest, options?: Configuration): Promise<ModelLabRunsResponse>;
    /**
     * Pin a Model Lab run for the current user.
     * @param param The request object
     */
    pinModelLabRun(param: ModelLabAPIApiPinModelLabRunRequest, options?: Configuration): Promise<void>;
    /**
     * Star a Model Lab project for the current user.
     * @param param The request object
     */
    starModelLabProject(param: ModelLabAPIApiStarModelLabProjectRequest, options?: Configuration): Promise<void>;
    /**
     * Remove the pin from a Model Lab run for the current user.
     * @param param The request object
     */
    unpinModelLabRun(param: ModelLabAPIApiUnpinModelLabRunRequest, options?: Configuration): Promise<void>;
    /**
     * Remove the star from a Model Lab project for the current user.
     * @param param The request object
     */
    unstarModelLabProject(param: ModelLabAPIApiUnstarModelLabProjectRequest, options?: Configuration): Promise<void>;
}
