/**
 * 消息interface
 */
interface IMessageInterface {
    /**
     * 是否支持跨扩展(仅runtime有效)
     */
    crossExtension: boolean;
    /**
     * 当前脚本
     */
    script: string;
    /**
     * 监听
     */
    listener(): void;
    /**
     * 提交给当前script(如过当前时contentScript则发送给contentScript，其他则是其他)
     * @param type
     * @param args
     */
    $emit(type: string, ...args: any): Promise<any>;
    /**
     * 发送给ContentScript
     * @param type
     * @param args
     */
    $emitContent(type: string, ...args: any): Promise<any>;
    /**
     * 发送给backgroundScript
     * @param type
     * @param args
     */
    $emitBackground(type: string, ...args: any): Promise<any>;
    /**
     * 发送给popup消息
     * @param type
     * @param args
     */
    $emitPopup(type: string, ...args: any): Promise<any>;
    /**
     * 发送给window消息
     * @param type
     * @param args
     */
    $emitWindow(type: string, ...args: any): Promise<any>;
    /**
     * 发送给所有打开的网页tab-contentScript
     * @param type
     * @param args
     */
    $emitAllTabs(type: string, ...args: any): Promise<any>;
    /**
     *
     * @param callback 获取当前标签tabId
     */
    getCurrentTabId(callback: Function): this;
    /**
     * 获取tabs
     * @param callback
     * @param queryInfo
     */
    getTabs(callback: Function, queryInfo?: chrome.tabs.QueryInfo): this;
    /**
     * 获取tabs
     * @param callback
     * @param queryInfo
     */
    getCurrentTabs(callback: Function): this;
}
export default IMessageInterface;
