import { ExecOptions } from "./core.ts";
/** 选择图片方式 */
export declare enum ImageSource {
    /** 打开设备相机，让用户拍摄新照片 */
    camera = 0,
    /** 打开用户的照片库 */
    gallery = 1
}
/**
 * 图片选择结果
 * @description 图片实体
 * @param {string} path 图片本地路径
 * @param {string?} url 图片远程地址
 * @param {string?} base64 图片base64
 * @param {string} name 图片名称
 * @param {string} 远程图片存储id
 * @param {string} mimeType
 */
export interface ImageEntity {
    name: string;
    mimeType?: string;
    path: string;
    url?: string;
    id?: string;
    base64?: string;
}
/**
 * 图片选择选项
 * @param {number} maxHeight 最大高度
 * @param {number?} maxWidth 最大宽度
 * @param {number?} imageQuality 图片质量
 * @param {boolean} requestFullMetadata 控制需要获取多少附加信息
 * @param {boolean} toBase64 是否返回base64
 * @param {boolean} upload 是否上传
 */
interface BaseImagePickerOptions extends ExecOptions<ImageEntity | ImageEntity[], any> {
    maxHeight?: number;
    maxWidth?: number;
    imageQuality?: number;
    requestFullMetadata?: boolean;
    toBase64?: boolean;
    upload?: boolean;
}
/**
 * 从相册选择选项
 * @param {boolean} multiple 是否多选
 */
export interface PickImageOptions extends BaseImagePickerOptions {
    multiple?: boolean;
}
/** 相机 */
export declare enum CameraDevice {
    /** 使用后置摄像头 */
    rear = 0,
    /** 使用前置摄像头 */
    front = 1
}
/**
 * 拍照选项
 * @param {CameraDevice} preferredCameraDevice 相机
 */
export interface TakePhotoOptions extends BaseImagePickerOptions {
    preferredCameraDevice?: CameraDevice;
}
/**
 * 图片预览选项
 * @param {string[]} urls 图片地址列表，仅支持网络地址和本地文件地址
 * @param {number} initialIndex 初始图片下标
 */
export interface PreviewImagesOptions {
    urls: string[];
    initialIndex?: number;
}
/**
 * 保存图片选项
 * @param {string} url 图片地址
 * @param {string?} name 图片名称
 */
export interface SaveImageOptions extends ExecOptions<any, any> {
    url: string;
    name?: string;
}
/**
 * 添加水印返回结果
 * @param {string} path 图片本地路径
 * @param {ImageInfo} name 图片信息
 * @param {string?} base64 base64格式
 * @param {string?} url 图片远程地址
 */
export interface AddWaterMarkResult {
    path: string;
    imageInfo: ImageInfo;
    base64?: string;
    url: string;
}
/**
 * 图片信息
 * @param {number} width 图片宽度
 * @param {number} height 图片高度
 * @param {number} size 图片大小
 */
interface ImageInfo {
    width: number;
    height: number;
    size: number;
}
/**
 * 添加水印选项
 * @param {string} url 图片地址
 * @param {number?} height 图片高度
 * @param {number?} width 图片宽度
 * @param {boolean?} toBase64 是否转为base64
 * @param {boolean?} upload 是否上传
 * @param {string?} text 水印文字
 * @param {string?} color 文字颜色
 * @param {number?} fontSize 字大小小
 * @param {number?} fontWidget 字重
 */
export interface AddWaterMarkOptions extends ExecOptions<AddWaterMarkResult, any> {
    url: string;
    height?: number;
    width?: number;
    toBase64?: boolean;
    upload?: boolean;
    text?: string;
    color?: string;
    fontSize?: number;
    fontWeight?: number;
}
/**
 * 转base64参数
 * @param {string} path 图片路径
 */
export interface ToBase64Options extends ExecOptions<string, any> {
    path: string;
}
export {};
