/**
 * @this {import('../driver').AndroidDriver}
 * @param {string} [resolution] Maximum supported resolution on-device (Detected automatically by the app
 * itself), which usually equals to Full HD 1920x1080 on most phones however
 * you can change it to following supported resolutions as well: "1920x1080",
 * "1280x720", "720x480", "320x240", "176x144".
 * @param {'high' | 'normal' | 'low'} [priority] Recording thread priority.
 * If you face performance drops during testing with recording enabled, you
 * can reduce recording priority
 * 'high' by default
 * @param {number} [maxDurationSec] Maximum allowed duration is 15 minutes; you can increase it if your test
 * takes longer than that. 900s by default.
 * @param {string} [filename] You can type recording video file name as you want, but recording currently
 * supports only "mp4" format so your filename must end with ".mp4". An
 * invalid file name will fail to start the recording. If not provided then
 * the current timestamp will be used as file name.
 * @returns {Promise<boolean>}
 */
export function mobileStartMediaProjectionRecording(this: import("../driver").AndroidDriver, resolution?: string, priority?: "high" | "normal" | "low", maxDurationSec?: number, filename?: string): Promise<boolean>;
/**
 * @this {import('../driver').AndroidDriver}
 * @returns {Promise<boolean>}
 */
export function mobileIsMediaProjectionRecordingRunning(this: import("../driver").AndroidDriver): Promise<boolean>;
/**
 * @this {import('../driver').AndroidDriver}
 * @param {string} [remotePath] The path to the remote location, where the resulting video should be
 * uploaded. The following protocols are supported: http/https, ftp. Null or
 * empty string value (the default setting) means the content of resulting
 * file should be encoded as Base64 and passed as the endpoont response value.
 * An exception will be thrown if the generated media file is too big to fit
 * into the available process memory.
 * @param {string} [user] The name of the user for the remote authentication.
 * @param {string} [pass] The password for the remote authentication.
 * @param {import('@appium/types').HTTPMethod} [method] The http multipart upload method name.
 * 'PUT' by default.
 * @param {import('@appium/types').StringRecord} [headers] Additional headers mapping for multipart http(s) uploads
 * @param {string} [fileFieldName] The name of the form field, where the file content BLOB should be stored
 * for http(s) uploads. 'file' by default.
 * @param {import('./types').FormFields} [formFields] Additional form fields for multipart http(s) uploads
 * @param {number} [uploadTimeout] The actual media upload request timeout in milliseconds.
 * Defaults to `@appium/support.net.DEFAULT_TIMEOUT_MS`
 * @returns {Promise<string>}
 */
export function mobileStopMediaProjectionRecording(this: import("../driver").AndroidDriver, remotePath?: string, user?: string, pass?: string, method?: import("@appium/types").HTTPMethod, headers?: import("@appium/types").StringRecord, fileFieldName?: string, formFields?: import("./types").FormFields, uploadTimeout?: number): Promise<string>;
export type UploadOptions = {
    user?: string | undefined;
    pass?: string | undefined;
    method?: import("@appium/types").HTTPMethod | undefined;
    headers?: import("@appium/types").StringRecord<any> | undefined;
    fileFieldName?: string | undefined;
    formFields?: import("./types").FormFields | undefined;
    uploadTimeout?: number | undefined;
};
export type ADB = import("appium-adb").ADB;
//# sourceMappingURL=media-projection.d.ts.map