import { Configuration } from './configuration';
import { AxiosPromise, AxiosInstance, AxiosRequestConfig } from 'axios';
import { RequestArgs, BaseAPI } from './base';
export interface AlignmentEntryDtoV1 {
    deleted?: string;
    inserted?: string;
}
export interface AsrRecognizedPhoneDtoV1 {
    phone: string;
    confidence?: ConfidenceDtoV1;
}
export interface AttemptResponseDtoV1 {
    id: string;
    userId: string;
    groupId?: string;
    exerciseResult: ExerciseResultDtoV1;
    exerciseId?: string;
    dateTime: string;
    audioKey?: string;
    timeout?: boolean;
    duration?: number;
    metadata?: object;
}
export interface AttemptSummaryDto {
    id?: string;
    audioKey?: string;
}
export interface AttemptsFilterDtoV1 {
    publisherId?: string;
    groupId?: string;
    userId?: string;
    expired?: boolean;
}
export interface ConfidenceDtoV1 {
    llr: number;
    prob: number;
}
export interface CreateAttemptDtoV1 {
    attemptId?: string;
    language?: CreateAttemptDtoV1LanguageEnum;
    exerciseResult: ExerciseResultDtoV1;
    exerciseId?: string;
    audioKey?: string;
    timeout?: boolean;
    duration?: number;
    metadata?: object;
}
export declare const CreateAttemptDtoV1LanguageEnum: {
    readonly ar_idn: "ar-idn";
    readonly de: "de";
    readonly en: "en";
    readonly nl: "nl";
    readonly zh: "zh";
    readonly fr: "fr";
    readonly es: "es";
};
export declare type CreateAttemptDtoV1LanguageEnum = typeof CreateAttemptDtoV1LanguageEnum[keyof typeof CreateAttemptDtoV1LanguageEnum];
export interface ExerciseResultDtoV1 {
    confidence?: ConfidenceDtoV1;
    correct?: boolean;
    correctness?: object;
    score?: ScoreDtoV1;
    recognized?: Array<WordRecognitionDtoV1>;
    phrases?: Array<PhraseRecognitionDtoV1>;
    alignment?: Array<AlignmentEntryDtoV1>;
    wordFeatures?: Array<WordFeatureDtoV1>;
    attempt?: AttemptSummaryDto;
    speechDetected?: boolean;
    exerciseId?: string;
    phrase?: string;
    respondedAt?: string;
}
export interface FileUploadResultDtoV1 {
    id: string;
}
export interface InlineObject2 {
    publisherId: string;
    offset?: number;
    limit?: number;
    filter?: object;
}
export interface LetterAlignmentDtoV1 {
    letter: string;
    phones: Array<string>;
    correct: boolean;
}
export interface PhoneRecognitionDtoV1 {
    timing?: TimingDtoV1;
    target?: AsrRecognizedPhoneDtoV1;
    recognized: AsrRecognizedPhoneDtoV1;
    correct?: boolean;
    correctness?: object;
}
export interface PhraseRecognitionDtoV1 {
    timing?: TimingDtoV1;
    phrase: string;
    correct?: boolean;
    correctness?: object;
    words: Array<WordRecognitionDtoV1>;
}
export interface ScoreDtoV1 {
    accuracy?: number;
    fluency?: number;
    velocity?: number;
}
export interface TimingDtoV1 {
    begin: number;
    end: number;
}
export interface UpdateAttemptDtoV1 {
    exerciseResult: ExerciseResultDtoV1;
    exerciseId?: string;
    audioKey?: string;
    timeout?: boolean;
    duration?: number;
}
export interface WordFeatureDtoV1 {
    id: string;
    categoryId?: string;
    correct: boolean;
    letters?: Array<WordFeatureLetterDtoV1>;
}
export interface WordFeatureLetterDtoV1 {
    letter: string;
    part: boolean;
}
export interface WordRecognitionDtoV1 {
    timing?: TimingDtoV1;
    word: string;
    correct?: boolean;
    correctness?: object;
    confidence?: ConfidenceDtoV1;
    score?: ScoreDtoV1;
    phones?: Array<PhoneRecognitionDtoV1>;
    alignment?: Array<AlignmentEntryDtoV1>;
    promptToken?: string;
    letterAlignment?: Array<LetterAlignmentDtoV1>;
    wordFeatures?: Array<WordFeatureDtoV1>;
}
export declare const AttemptsApiAxiosParamCreator: (configuration?: Configuration) => {
    createAttempt: (attempt?: string, audio?: any, options?: AxiosRequestConfig) => Promise<RequestArgs>;
    deleteAttempts: (attemptsFilterDtoV1: AttemptsFilterDtoV1, options?: AxiosRequestConfig) => Promise<RequestArgs>;
    downloadAttempts: (inlineObject2: InlineObject2, options?: AxiosRequestConfig) => Promise<RequestArgs>;
    getAttempt: (id: string, options?: AxiosRequestConfig) => Promise<RequestArgs>;
    getAttempts: (publisherId?: string, groupId?: string, userId?: string, expired?: boolean, options?: AxiosRequestConfig) => Promise<RequestArgs>;
    removeAttempt: (id: string, options?: AxiosRequestConfig) => Promise<RequestArgs>;
    updateAttempt: (id: string, updateAttemptDtoV1: UpdateAttemptDtoV1, options?: AxiosRequestConfig) => Promise<RequestArgs>;
};
export declare const AttemptsApiFp: (configuration?: Configuration) => {
    createAttempt(attempt?: string, audio?: any, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<AttemptResponseDtoV1>>;
    deleteAttempts(attemptsFilterDtoV1: AttemptsFilterDtoV1, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<void>>;
    downloadAttempts(inlineObject2: InlineObject2, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Array<AttemptResponseDtoV1>>>;
    getAttempt(id: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<AttemptResponseDtoV1>>;
    getAttempts(publisherId?: string, groupId?: string, userId?: string, expired?: boolean, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Array<AttemptResponseDtoV1>>>;
    removeAttempt(id: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<void>>;
    updateAttempt(id: string, updateAttemptDtoV1: UpdateAttemptDtoV1, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<AttemptResponseDtoV1>>;
};
export declare const AttemptsApiFactory: (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) => {
    createAttempt(attempt?: string, audio?: any, options?: any): AxiosPromise<AttemptResponseDtoV1>;
    deleteAttempts(attemptsFilterDtoV1: AttemptsFilterDtoV1, options?: any): AxiosPromise<void>;
    downloadAttempts(inlineObject2: InlineObject2, options?: any): AxiosPromise<Array<AttemptResponseDtoV1>>;
    getAttempt(id: string, options?: any): AxiosPromise<AttemptResponseDtoV1>;
    getAttempts(publisherId?: string, groupId?: string, userId?: string, expired?: boolean, options?: any): AxiosPromise<Array<AttemptResponseDtoV1>>;
    removeAttempt(id: string, options?: any): AxiosPromise<void>;
    updateAttempt(id: string, updateAttemptDtoV1: UpdateAttemptDtoV1, options?: any): AxiosPromise<AttemptResponseDtoV1>;
};
export declare class AttemptsApi extends BaseAPI {
    createAttempt(attempt?: string, audio?: any, options?: AxiosRequestConfig): Promise<import("axios").AxiosResponse<AttemptResponseDtoV1, any>>;
    deleteAttempts(attemptsFilterDtoV1: AttemptsFilterDtoV1, options?: AxiosRequestConfig): Promise<import("axios").AxiosResponse<void, any>>;
    downloadAttempts(inlineObject2: InlineObject2, options?: AxiosRequestConfig): Promise<import("axios").AxiosResponse<AttemptResponseDtoV1[], any>>;
    getAttempt(id: string, options?: AxiosRequestConfig): Promise<import("axios").AxiosResponse<AttemptResponseDtoV1, any>>;
    getAttempts(publisherId?: string, groupId?: string, userId?: string, expired?: boolean, options?: AxiosRequestConfig): Promise<import("axios").AxiosResponse<AttemptResponseDtoV1[], any>>;
    removeAttempt(id: string, options?: AxiosRequestConfig): Promise<import("axios").AxiosResponse<void, any>>;
    updateAttempt(id: string, updateAttemptDtoV1: UpdateAttemptDtoV1, options?: AxiosRequestConfig): Promise<import("axios").AxiosResponse<AttemptResponseDtoV1, any>>;
}
export declare const FilesApiAxiosParamCreator: (configuration?: Configuration) => {
    deleteFile: (id: string, options?: AxiosRequestConfig) => Promise<RequestArgs>;
    downloadFile: (id: string, options?: AxiosRequestConfig) => Promise<RequestArgs>;
    uploadFile: (file?: any, options?: AxiosRequestConfig) => Promise<RequestArgs>;
};
export declare const FilesApiFp: (configuration?: Configuration) => {
    deleteFile(id: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<void>>;
    downloadFile(id: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<object>>;
    uploadFile(file?: any, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<FileUploadResultDtoV1>>;
};
export declare const FilesApiFactory: (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) => {
    deleteFile(id: string, options?: any): AxiosPromise<void>;
    downloadFile(id: string, options?: any): AxiosPromise<object>;
    uploadFile(file?: any, options?: any): AxiosPromise<FileUploadResultDtoV1>;
};
export declare class FilesApi extends BaseAPI {
    deleteFile(id: string, options?: AxiosRequestConfig): Promise<import("axios").AxiosResponse<void, any>>;
    downloadFile(id: string, options?: AxiosRequestConfig): Promise<import("axios").AxiosResponse<object, any>>;
    uploadFile(file?: any, options?: AxiosRequestConfig): Promise<import("axios").AxiosResponse<FileUploadResultDtoV1, any>>;
}
