import { AxiosResponse } from 'axios';
import { API } from './API';
import ModelGroup from '../features/UploadData/Components/SelectDataFromRLEF/interfaces/modelGroup.type';
import { IModel, IModelQueryParams, IModelsResponse, IModelNamesQueryParams, IModelNamesResponse, IModelAddPayload, IModelArchitecturesAvailablePayload, IModelArchitecturesAvailableApiResponse, IModelCollectionUniqueDataPayload, UniqueModelCollectionVersionsApiResponse, UniqueModelCollectionArchitecturesApiResponse, UniqueModelCollectionAccuracyStatusesApiResponse, UniqueModelCollectionTrainingDataSetsApiResponse, UniqueModelCollectionStatusesApiResponse, IModelLabelsAvailableApiResponse, UpdateModelApiResponse, GetModelReferenceDataAPiReqPayload, IReferenceDataState, GetModelDetailsAPiReqPayload, GetModelDetailsAPiResponse, DefaultDataSetCollectionAPIResponse, IModelType } from '../features/UploadData/Components/SelectDataFromRLEF/interfaces/models';
type GetModelGroupsApiRequestPayload = {
    projectId?: string;
    getModels?: "true";
    collectionsExist?: boolean;
    page?: number;
    limit?: number;
    modelGroupId?: string;
};
type GetModelGroupsApiResponse = (ModelGroup & {
    models?: IModel[];
})[];
declare class ModelService extends API {
    private readonly modelArchitectureUpdateEndPoint;
    getProjectModels(data: IModelQueryParams): Promise<AxiosResponse<IModelsResponse>>;
    getProjectModelNames(data: IModelNamesQueryParams): Promise<AxiosResponse<IModelNamesResponse>>;
    addModel(body: IModelAddPayload): Promise<AxiosResponse<unknown>>;
    deleteModel(body: {
        model: string;
    }): Promise<AxiosResponse<unknown>>;
    getModelArchitecturesAvailable(data: IModelArchitecturesAvailablePayload): Promise<AxiosResponse<IModelArchitecturesAvailableApiResponse>>;
    getUniqueModelCollectionVersions(data: IModelCollectionUniqueDataPayload): Promise<AxiosResponse<UniqueModelCollectionVersionsApiResponse>>;
    getUniqueModelCollectionArchitectures(data: IModelCollectionUniqueDataPayload): Promise<AxiosResponse<UniqueModelCollectionArchitecturesApiResponse>>;
    getUniqueModelCollectionAccuracyStatuses(data: IModelCollectionUniqueDataPayload): Promise<AxiosResponse<UniqueModelCollectionAccuracyStatusesApiResponse>>;
    getUniqueModelCollectionTrainingDataSets(data: IModelCollectionUniqueDataPayload): Promise<AxiosResponse<UniqueModelCollectionTrainingDataSetsApiResponse>>;
    getUniqueModelCollectionStatuses(data: IModelCollectionUniqueDataPayload): Promise<AxiosResponse<UniqueModelCollectionStatusesApiResponse>>;
    getModelLabelsAvailable(data: {
        modelId: string;
    }): Promise<AxiosResponse<IModelLabelsAvailableApiResponse>>;
    getAllowUserToSetAnyLabelInModel(data: {
        modelId: string;
    }): Promise<AxiosResponse<boolean>>;
    updateModelReferenceData(data: FormData): Promise<AxiosResponse<UpdateModelApiResponse>>;
    getModelReferenceData(data: GetModelReferenceDataAPiReqPayload): Promise<AxiosResponse<IReferenceDataState[]>>;
    getModelDetails(data: GetModelDetailsAPiReqPayload): Promise<AxiosResponse<GetModelDetailsAPiResponse>>;
    getCollectionDetails(collectionId: string): Promise<AxiosResponse<any>>;
    modelArchitectureRegister(data: any): Promise<AxiosResponse<any>>;
    modelArchitectureUpdate(data: any): Promise<AxiosResponse<any>>;
    modelArchitectureDelete(vm_name: string): Promise<AxiosResponse<any>>;
    getDefaultDataSetCollection(modelId: string): Promise<AxiosResponse<DefaultDataSetCollectionAPIResponse>>;
    updateModelCollectionDefaultCheckPoint(payload: any): Promise<AxiosResponse<any>>;
    getModelsByType(modelType: IModelType, projectId: string): Promise<IModel[]>;
    getDataforTrainedModelQNAPopup(email: string, snoozeTime: number): Promise<any>;
    getModelGroups(payload: GetModelGroupsApiRequestPayload): Promise<GetModelGroupsApiResponse>;
    getAllModelGroupNames(payload: GetModelGroupsApiRequestPayload): Promise<GetModelGroupsApiResponse>;
    updateModelGroup(modelGroupId: string, thingsToUpdate: {
        name?: ModelGroup["name"];
        colour?: ModelGroup["colour"];
        nodes?: ModelGroup["nodes"];
        edges?: ModelGroup["edges"];
    }): Promise<any>;
    createModelGroup(data: {
        name: ModelGroup["name"];
        projectId: ModelGroup["projectId"];
        colour: ModelGroup["colour"];
    }): Promise<ModelGroup>;
    isModelGroupNameAlreadyTaken(data: {
        modelGroupName: ModelGroup["name"];
        projectId: ModelGroup["projectId"];
    }): Promise<ModelGroup>;
    deleteModelGroup(idOfModelGroupToDelete: string): Promise<AxiosResponse<unknown>>;
}
declare const _default: ModelService;
export default _default;
//# sourceMappingURL=ModelService.d.ts.map