import { AxiosInstance, AxiosRequestConfig, AxiosResponse } from 'axios';
import { ExerciseType, LanguageCode } from '../../entities';
import { CreateExerciseDtoV1 } from './dto/create-exercise.dto.v1';
import { ExerciseDescriptorDtoV1 } from './dto/exercise-descriptor.dto.v1';
import { ExerciseResponseDtoV1 } from './dto/exercise-response.dto.v1';
import { ReplaceExerciseDtoV1 } from './dto/replace-exercise.dto.v1';
import { Configuration } from './generated';
export declare class ExerciseApi {
    private readonly api;
    private readonly languageCodeMapper;
    private readonly exerciseTypeMapper;
    private readonly exerciseDefinitionMapper;
    constructor(configuration?: Configuration | undefined, basePath?: string, axios?: AxiosInstance);
    private mapGeneratedExerciseResponse;
    createExerciseV1(createExerciseDto: CreateExerciseDtoV1, options?: AxiosRequestConfig<unknown> | undefined): Promise<AxiosResponse<ExerciseResponseDtoV1>>;
    deleteExerciseV1(id: string, options?: AxiosRequestConfig<unknown> | undefined): Promise<AxiosResponse<void>>;
    getExerciseV1(id: string, options?: AxiosRequestConfig<unknown> | undefined): Promise<AxiosResponse<ExerciseResponseDtoV1>>;
    getExerciseListV1(custom?: string, exerciseType?: ExerciseType, languageCode?: LanguageCode, options?: AxiosRequestConfig<unknown> | undefined): Promise<AxiosResponse<Array<ExerciseDescriptorDtoV1>>>;
    replaceExerciseV1(id: string, replaceExerciseDto: ReplaceExerciseDtoV1, options?: AxiosRequestConfig<unknown> | undefined): Promise<AxiosResponse<ExerciseResponseDtoV1>>;
}
