import { IWindow } from "./model/window";
import { ITitle } from "./model/title";
import { NavigationBar } from "./model/navigationbar";
import { IShare } from "./model/share";
import { Itoken } from "../auth/itoken";
import { Observable } from "rxjs";
import { UserLocation } from "./model/location";
export declare abstract class BaseDevice {
    /**
     * 用户认证
     */
    abstract auth(): Promise<any>;
    /**
     * 新开窗口
     */
    abstract openWindow(iwindow: IWindow): void;
    /**
     * 设置标题
     */
    abstract setTitle(ititle: ITitle): void;
    /**
     * 放置按钮
     */
    abstract setNavigationBar(navigationBar: NavigationBar): void;
    /**
     * 分享
     */
    abstract share(ishare: IShare): void;
    /**
     * 获取token
     */
    abstract getToken(): Itoken;
    /**
     * 扫二维码
     */
    abstract scanCode(): Observable<string>;
    /**
     * 获取位置
     */
    abstract userLocation(): Observable<UserLocation>;
    /**
     * 验证wifi是否在地址列表里
     */
    abstract validateInWifi(bssids: Array<string>): Observable<boolean>;
    /**
     * 获取wifi Mac地址
     */
    abstract getWifiMac(): Observable<string>;
    /**
     * 获取联系人
     */
    abstract chooseContacts(count: number): Observable<any>;
    /**
     * 获取联系人详情
     * @param targetUserId 联系人id
     */
    abstract contactDetails(targetUserId: string): Observable<any>;
    /**
     * 图片上传
     * @param count 选择上传图片的数量,默认1张 ,
     * sourceType :album 从相册选图，camera 使用相机，默认二者都有
     */
    abstract uploadImage(count: number, sourceType: any): Observable<any>;
    /**
     * pdf计时
     * @param
     */
    abstract openReadWithTimer(url: any, openType: any, title: any, id: any, type: any): Observable<any>;
    /**
     * 视频上传
     * @param limitMinute 最大的视频时长,
     */
    abstract uploadMovie(limitMinute: number): Observable<any>;
    /**
     * 文件浏览器
     * @param {string} url
     * @param {string} title
     * @returns {Observable<any>}
     */
    abstract fileBrowser(url: string, title: string): Observable<any>;
    /**
     *
     * @param ticket  //摇周边的业务ticket, 系统自动添加在摇出来的页面链接后面
     * @param callback  //开启查找完成后的回调函数
     */
    abstract startSearchBeacons(ticket: string, callback: (argv: any) => void): void;
    /**
     *
     * @param callback //关闭查找完成后的回调函数
     */
    abstract stopSearchBeacons(callback: (argv: any) => void): void;
    /**
     *
     * @param callback //回调函数，可以数组形式取得该商家注册的在周边的相关设备列表
     */
    abstract onSearchBeacons(callback: (argv: any) => void): void;
}
