import * as media from '../public/media';
import * as people from '../public/people';
/**
 * @hidden
 * Helper function to create a blob from media chunks based on their sequence
 *
 * @internal
 * Limited to Microsoft-internal use
 */
export declare function createFile(assembleAttachment: media.AssembleAttachment[], mimeType: string): Blob | null;
/**
 * @hidden
 * Helper function to convert Media chunks into another object type which can be later assemebled
 * Converts base 64 encoded string to byte array and then into an array of blobs
 *
 * @internal
 * Limited to Microsoft-internal use
 */
export declare function decodeAttachment(attachment: media.MediaChunk, mimeType: string): media.AssembleAttachment | null;
/**
 * @hidden
 * Function throws an SdkError if the media call is not supported on current mobile version, else undefined.
 *
 * @throws an SdkError if the media call is not supported
 *
 * @internal
 * Limited to Microsoft-internal use
 */
export declare function throwExceptionIfMediaCallIsNotSupportedOnMobile(mediaInputs: media.MediaInputs): void;
/**
 * @hidden
 * Function returns true if the app has registered to listen to video controller events, else false.
 *
 * @internal
 * Limited to Microsoft-internal use
 */
export declare function isVideoControllerRegistered(mediaInputs: media.MediaInputs): boolean;
/**
 * @hidden
 * Returns true if the mediaInput params are valid and false otherwise
 *
 * @internal
 * Limited to Microsoft-internal use
 */
export declare function validateSelectMediaInputs(mediaInputs: media.MediaInputs): boolean;
/**
 * @hidden
 * Returns true if the mediaInput params are called for mediatype Image and contains Image outputs formats, false otherwise
 *
 * @internal
 * Limited to Microsoft-internal use
 */
export declare function isMediaCallForImageOutputFormats(mediaInputs: media.MediaInputs): boolean;
/**
 * @hidden
 * Returns true if the mediaInput params are called for mediatype VideoAndImage and false otherwise
 *
 * @internal
 */
export declare function isMediaCallForVideoAndImageInputs(mediaInputs: media.MediaInputs): boolean;
/**
 * @hidden
 * Returns true if the mediaInput params are called for non-full screen video mode and false otherwise
 *
 * @internal
 */
export declare function isMediaCallForNonFullScreenVideoMode(mediaInputs: media.MediaInputs): boolean;
/**
 * @hidden
 * Returns true if the get Media params are valid and false otherwise
 *
 * @internal
 */
export declare function validateGetMediaInputs(mimeType: string, format: media.FileFormat, content: string): boolean;
/**
 * @hidden
 * Returns true if the view images param is valid and false otherwise
 *
 * @internal
 */
export declare function validateViewImagesInput(uriList: media.ImageUri[]): boolean;
/**
 * @hidden
 * Returns true if the scan barcode param is valid and false otherwise
 *
 * @internal
 */
export declare function validateScanBarCodeInput(barCodeConfig?: media.BarCodeConfig): boolean;
/**
 * @hidden
 * Returns true if the people picker params are valid and false otherwise
 *
 * @internal
 */
export declare function validatePeoplePickerInput(peoplePickerInputs?: people.PeoplePickerInputs): boolean;
