import { BaseAPI } from '../BaseAPI';
import { UserVocabularyRequest, UpsertVocabularyRequest, VocabularyResult, RemoveVocabularyRequest } from './VocabularyModels';
import { NotificationClient } from '../../client/NotificationClient';
import { AugnitoAppNotification } from '../../support/AugnitoMobileSocketResponse';
import { AugnitoVocabularyConfig } from '../../config/AugnitoVocabularyConfig';
export declare class VocabularyAPI extends BaseAPI {
    private _config;
    private _notificationClient;
    private _notifSubscribedInOtherWindow;
    private _logTag;
    private _baseUrl;
    private _recorder;
    private _preventOverrun;
    private _overrunRecording;
    private _recordingStart;
    private _isRecording;
    private _stream;
    onVocabularyAdded?: (notification: AugnitoAppNotification) => void;
    constructor(_config: AugnitoVocabularyConfig, _notificationClient: NotificationClient, _notifSubscribedInOtherWindow: boolean);
    getVocabulary(request: UserVocabularyRequest): Promise<VocabularyResult | string>;
    removeVocabulary(request: RemoveVocabularyRequest): Promise<VocabularyResult | string>;
    upsertVocabulary(request: UpsertVocabularyRequest): Promise<VocabularyResult | string>;
    startRecording(): Promise<void>;
    stopRecording(): Promise<Blob>;
    private getURL;
    private getGetCommonModel;
    private getUpsertCommonModel;
    private onVocabularyAddedCallback;
    private log;
    private makePostFormRequest;
}
