import { MediaCapture } from '@ionic-native/media-capture' ; import { Observable } from 'rxjs/Observable' ; import { Observer } from 'rxjs/Observer' ; export interface MediaFile { /**
     * The name of the file, without path information.
     */ name : string ; /**
     * The full path of the file, including the name.
     */ fullPath : string ; /**
     * The file's mime type
     */ type : string ; /**
     * The date and time when the file was last modified.
     */ lastModifiedDate : Date ; /**
     * The size of the file, in bytes.
     */ size : number ; param { Function } successCallback param { Function } errorCallback getFormatData ( successCallback , errorCallback ? ) : void ; } export interface MediaFileData { /**
     * The actual format of the audio and video content.
     */ codecs : string ; /**
     * The average bitrate of the content. The value is zero for images.
     */ bitrate : number ; /**
     * The height of the image or video in pixels. The value is zero for audio clips.
     */ height : number ; /**
     * The width of the image or video in pixels. The value is zero for audio clips.
     */ width : number ; /**
     * The length of the video or sound clip in seconds. The value is zero for images.
     */ duration : number ; } export interface CaptureError { code : string ; } export interface CaptureAudioOptions { /**
     * Maximum number of audio clips. Defaults to 1.
     * On iOS you can only record one file.
     */ limit ? : number ; /**
     * Maximum duration of an audio sound clip, in seconds. This does not work on Android devices.
     */ duration ? : number ; } export interface CaptureImageOptions { /**
     * Maximum number of images to capture. This limit is not supported on iOS, only one image will be taken per invocation.
     */ limit ? : number ; } export interface CaptureVideoOptions { /**
     * Maximum number of video clips to record. This value is ignored on iOS, only one video clip can be taken per invocation.
     */ limit ? : number ; /**
     * Maximum duration per video clip. This will be ignored on BlackBerry.
     */ duration ? : number ; /**
     * Quality of the video. This parameter can only be used with Android.
     */ quality ? : number ; } export interface ConfigurationData { /**
     * The ASCII-encoded lowercase string representing the media type.
     */ type : string ; /**
     * The height of the image or video in pixels. The value is zero for sound clips.
     */ height : number ; /**
     * The width of the image or video in pixels. The value is zero for sound clips.
     */ width : number ; } export class MediaCaptureMock extends MediaCapture { returns { ConfigurationData [ ] } supportedImageModes : ConfigurationData [ ] ; returns { ConfigurationData [ ] } supportedAudioModes : ConfigurationData [ ] ; returns { ConfigurationData [ ] } supportedVideoModes : ConfigurationData [ ] ; param options returns { Promise < MediaFile [ ] > } captureAudio ( options ? ) { let response = [ ] ; return new Promise ( ( resolve , reject ) => { resolve ( response ) ; } ) ; } ; param options returns { Promise < MediaFile [ ] > } captureImage ( options ? ) { let response = [ ] ; return new Promise ( ( resolve , reject ) => { resolve ( response ) ; } ) ; } ; param options returns { Promise < MediaFile [ ] > } captureVideo ( options ? ) { let response = [ ] ; return new Promise ( ( resolve , reject ) => { resolve ( response ) ; } ) ; } ; returns { Observable < MediaFile [ ] > } onPendingCaptureResult ( ) { let response = [ ] ; return Observable . create ( ( observer ) => { observer . next ( response ) ; observer . complete ( ) ; } ) ; } ; returns { Observable < CaptureError > } onPendingCaptureError ( ) { let response = [ ] ; return Observable . create ( ( observer ) => { observer . next ( response ) ; observer . complete ( ) ; } ) ; } ; }