// Typescript file for core.tcpsocket in: // https://github.com/freedomjs/freedom/blob/master/interface/core.js /// // The data types used by TcpSocket //declare module freedom { declare module freedom_TcpSocket { interface DisconnectInfo { errcode :string; message :string; } interface ReadInfo { data :ArrayBuffer; } interface WriteInfo { bytesWritten :number; } interface SocketInfo { connected :boolean; localAddress ?:string; localPort ?:number; peerAddress ?:string; peerPort ?:number; } interface ConnectInfo { socket :number; host :string; port :number; } // The TcpSocket class (freedom['core.TcpSocket']) interface Socket { listen(address:string, port:number) : Promise; connect(hostname:string, port:number) : Promise; secure() : Promise; write(data:ArrayBuffer) : Promise; pause() : Promise; resume() : Promise; getInfo() : Promise; close() : Promise; // TcpSockets have 3 types of events: on(eventType:string, f:Function) : void; on(type:'onConnection', f:(i:ConnectInfo) => void) : void; on(type:'onData', f:(i:ReadInfo) => void) : void; on(type:'onDisconnect', f:(i:DisconnectInfo) => void) : void; } } // module TcpSockets // }