package chrome; import js.html.ArrayBuffer; import chrome.Events; @:enum abstract ConnectionState(String) from String to String { var connected = "connected"; var failure = "failure"; } @:require(chrome_os) @:native("chrome.vpnProvider") extern class VpnProvider { static function createConfig( name : String, callback : String->Void ) : Void; static function destroyConfig( id : String, ?callback : Void->Void ) : Void; static function setParameters( parameters : {address:String,?broadcastAddress:String,?mtu:String,exclusionList:Array,inclusionList:Array,?domainSearch:Array,dnsServers:Array}, callback : Void->Void ) : Void; static function sendPacket( data : ArrayBuffer, ?callback : Void->Void ) : Void; static function notifyConnectionStateChanged( state : ConnectionState, ?callback : Void->Void ) : Void; static var onPlatformMessage(default,never) : EventString->String->Void>; static var onPacketReceived(default,never) : EventVoid>; static var onConfigRemoved(default,never) : EventVoid>; static var onConfigCreated(default,never) : EventString->Dynamic->Void>; static var onUIEvent(default,never) : Event?String->Void>; }