package chrome; import js.html.LocalMediaStream; import chrome.Events; /* typedef CaptureInfo = { var tabId : Int; var status : CaptureStatus; var fullscreen : Bool; } */ typedef MediaStreamConstraint = { var mandatory : Dynamic; @:optional var optional : Dynamic; } private typedef CaptureOptions = { @:optional var audio : Bool; @:optional var video : Bool; @:optional var audioConstraints : MediaStreamConstraint; @:optional var videoConstraints : MediaStreamConstraint; } @:enum abstract CaptureInfo(String) from String to String { var pending = "pending"; var active = "active"; var stopped = "stopped"; var error = "error"; } @:require(chrome_ext) @:native("chrome.tabCapture") extern class TabCapture { static function capture( options : {?audio:Bool,?video:Bool,?audioConstraints:MediaStreamConstraint,?videoConstraints:MediaStreamConstraint}, callback : LocalMediaStream->Void ) : Void; static function getCapturedTabs( callback : Array->Void ) : Void; static var onStatusChanged(default,never) : EventVoid>; }