import { ElementRef, EventEmitter, OnChanges, OnInit, SimpleChanges } from '@angular/core';
import { WebcamImage, WebcamInitError } from 'ngx-webcam';
import { Observable } from 'rxjs';
import { AddMediaOptions, FileType, ImageMirrorOption } from '../inspire-library.enum';
import { AddPhoto, PrivacyOption } from '../inspire-library.interface';
import * as i0 from "@angular/core";
export declare class AddMediaComponent implements OnInit, OnChanges {
    browseMedia: ElementRef;
    mobileNativeCamera: ElementRef;
    videoCapture: ElementRef<HTMLVideoElement>;
    videoPlay: ElementRef<HTMLVideoElement>;
    media: AddPhoto[];
    attachedMedia: AddPhoto[];
    customMediaOption: AddMediaOptions;
    nextButtonText: string;
    attachToPostButtonText: string;
    mediaType: string;
    isMobile: boolean;
    setAttachedMedia: EventEmitter<AddPhoto[]>;
    updateMediaMetaData: EventEmitter<AddPhoto[]>;
    uploadFile: EventEmitter<File[]>;
    closeAddMedia: EventEmitter<void>;
    addMediaOptions: typeof AddMediaOptions;
    currentMediaOption: AddMediaOptions;
    showPrivacyOption: any[];
    webcamPhotos: (ArrayBuffer | string)[];
    filesToUpload: File[];
    showWebcam: boolean;
    errors: WebcamInitError[];
    private triggerWebCam$;
    isNoMediaSelected: boolean;
    inspireLibraryMedia: AddPhoto[];
    selectedMedia: AddPhoto[];
    selectedMediaCopy: AddPhoto[];
    imageMirrorOption: typeof ImageMirrorOption;
    privacyOptions: PrivacyOption[];
    privacyStyle: {
        public: string;
        members: string;
        friends: string;
        private: string;
    };
    fileType: typeof FileType;
    mediaTypeLabel: {
        image: string;
        video: string;
        file: string;
    };
    videoStream: MediaStream;
    recordRtc: any;
    constructor();
    ngOnInit(): void;
    ngOnChanges(changes: SimpleChanges): void;
    onMediaUpdate(): void;
    updateIsNoMediaSelected(): void;
    onEditAttachedMedia(): void;
    onCloseAddMedia(): void;
    setMediaOptions(option: AddMediaOptions, mediaType?: FileType): void;
    initVideoStream(): void;
    closeVideoStream(): void;
    onToggleVideoCapture(): void;
    processVideo(audioVideoWebMURL: any): Promise<void>;
    onCloseWebcam(): void;
    onRetakeMedia(): void;
    onToggleMediaSelection(selectedPhoto: AddPhoto): void;
    onNext(): void;
    onRemoveSelectedMedia(photo: AddPhoto): void;
    onRemoveAttachedMedia(photo: AddPhoto): void;
    onRemoveAllSelectedMedia(): void;
    removeUnsavedChanges(): void;
    onSelectPrivacyOption(privacyOption: PrivacyOption, photo: AddPhoto, photoIndex: number): void;
    onTogglePrivacyOption(photoIndex: number, value?: boolean): void;
    getSelectedPrivacyLabel(photo: AddPhoto): string;
    onUpdateAttachedPhotosMetaData(attachedMedia: AddPhoto[]): void;
    onAttachMediaToPost(event: Event): void;
    updateAttachedMedia(selectedMedia: AddPhoto[]): void;
    onSelectMedia(event: Event): void;
    onCaptureMediaFromMobile(event: Event): void;
    onUpload(): void;
    openMediaExplorer(): void;
    openMobileNativeCameraApp(): void;
    onImageCapture(webcamImage: WebcamImage): Promise<void>;
    triggerWebcamSnapshot(): void;
    get triggerObservable(): Observable<void>;
    toggleWebcam(value: boolean): void;
    onInitError(error: WebcamInitError): void;
    convertBase64ToImage(imageName: string, type: string, base64: string): Promise<File>;
    static ɵfac: i0.ɵɵFactoryDef<AddMediaComponent, never>;
    static ɵcmp: i0.ɵɵComponentDefWithMeta<AddMediaComponent, "ins-add-media", never, { "media": "media"; "attachedMedia": "attachedMedia"; "customMediaOption": "customMediaOption"; "nextButtonText": "nextButtonText"; "attachToPostButtonText": "attachToPostButtonText"; "mediaType": "mediaType"; "isMobile": "isMobile"; }, { "setAttachedMedia": "setAttachedMedia"; "updateMediaMetaData": "updateMediaMetaData"; "uploadFile": "uploadFile"; "closeAddMedia": "closeAddMedia"; }, never, never>;
}
