import { OnInit, EventEmitter, NgZone, AfterViewInit } from '@angular/core';
import { SurveyErrorStateMatcher } from '../index';
import { FormItem, FormItemWidget, SurveyFile } from '../form-item';
import { NgxSurveyService } from '../../ngx-survey.service';
import * as i0 from "@angular/core";
export declare class FormItemVoice extends FormItem {
    value?: SurveyFile;
    areaLabel: string;
    buttonLabel: string;
}
export declare class FormItemVoiceComponent implements FormItemWidget, OnInit, AfterViewInit {
    private service;
    private zone;
    audio: any;
    waveformElement: any;
    item: FormItemVoice;
    editable: boolean;
    changes: EventEmitter<FormItemVoice>;
    matcher: SurveyErrorStateMatcher;
    fileObject: any;
    file: undefined | SurveyFile;
    isFilesUploading: boolean;
    allowDelete: boolean;
    uploadedFilesNumber: number;
    uploadFilesNumber: number;
    stream: any;
    recordRTC: any;
    recordedBlob: any;
    recordingInprogress: boolean;
    blobSize: number;
    hasRecord: boolean;
    duration: number;
    timeLimit: number;
    wavesurfer: any;
    wavesurferPlay: boolean;
    isEdge: boolean;
    isSafari: boolean;
    durationInterval: any;
    controlIcon: string;
    constructor(service: NgxSurveyService, zone: NgZone);
    ngOnInit(): void;
    ngAfterViewInit(): void;
    ngOnChanges(): void;
    checkRequired(placeholder: any): true | undefined;
    onValueChanges(item: any): void;
    clear(): void;
    onCloseClick(): void;
    startRecording(): void;
    errorCallback(stream: MediaStream): void;
    successCallback(stream: MediaStream): void;
    toggleControls(): void;
    stopRecording(): void;
    processAudio(audioVideoWebMURL: any): SurveyFile | undefined;
    uploadFile(file: SurveyFile): void;
    play(): void;
    pause(): void;
    togglePlay(): void;
    toggleRecording(): void;
    clearBlob(): void;
    download(): void;
    onSave(): void;
    ngOnDestroy(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<FormItemVoiceComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<FormItemVoiceComponent, "app-form-item-voice", never, { "item": { "alias": "item"; "required": false; }; "editable": { "alias": "editable"; "required": false; }; }, { "changes": "changes"; }, never, never, false, never>;
}
