export default interface BrowserService {
    getExtensionVesion():string;

    createWindow(url?:string):Promise<number>;

    getCurrentWidow() : Promise<{windowId:number, tabsId?:number[]}>;

    drawAttentionToWindow(windowId: number):Promise<void>;

    closeWindow(windowId: number):Promise<void>;

    runScript(tabId: number): Promise<boolean>;

    restartWindow(windowId : number, url?:string):Promise<void>;

    drawAttentionToWindow(windowId : number):Promise<void>;

    takeScreenshot(): Promise<string> ;

    /*

    startTabRecording() : Promise<void>;

    stopTabRecording() : Promise<void>

    getTadRecordedMedia() : Blob;*/

    attachWindowCreatedHandler( handler : (windowId:number) => void);

    attachWindowRemovedHandler( handler : (windowId:number) => void);

    attachTabCreatedHandler( handler : (tabId:number, windowId:number) => void);

    attachTabRemovedHandler( handler : (tabId:number, windowId:number) => void);

    attachTabDetachedHandler( handler : (tabId:number, windowId:number) => void);

    attachTabAttachedHandler( handler : (tabId:number, windowId:number) => void);

    attachTabActivatedHandler( handler : (tabId:number, windowId:number) => void);

    attachOnDomLoadedHandler( handler : (tabId:number) => void);

    attachOnCommittedHandler( handler : (tabId:number) => void);

}