Fix configuration files.
[e-mobility-charging-stations-simulator.git] / flow-typed / npm / ws_v7.x.x.js
diff --git a/flow-typed/npm/ws_v7.x.x.js b/flow-typed/npm/ws_v7.x.x.js
new file mode 100644 (file)
index 0000000..a5cafd7
--- /dev/null
@@ -0,0 +1,363 @@
+// flow-typed signature: cf710812f8fe053ca189786d3fa45067
+// flow-typed version: be32675b14/ws_v7.x.x/flow_>=v0.104.x
+
+declare type ws$PerMessageDeflateOptions = {|
+  serverNoContextTakeover?: boolean,
+  clientNoContextTakeover?: boolean,
+  serverMaxWindowBits?: boolean | number,
+  clientMaxWindowBits?: boolean | number,
+  zlibDeflateOptions?: zlib$options,
+  zlibInflateOptions?: zlib$options,
+  threshold?: number,
+  concurrencyLimit?: number,
+  isServer?: boolean,
+  maxPayload?: number,
+|};
+
+declare class ws$WebSocketServer extends events$EventEmitter {
+  /**
+   * Create a `WebSocketServer` instance.
+   */
+  constructor(
+    options: {|
+      backlog?: number,
+      clientTracking?: boolean,
+      handleProtocols?: () => mixed,
+      host?: string,
+      maxPayload?: number,
+      noServer?: boolean,
+      path?: string,
+      perMessageDeflate?: boolean | ws$PerMessageDeflateOptions,
+      port: number,
+      server?: http$Server | https$Server,
+      verifyClient?: () => mixed,
+    |},
+    callback?: () => mixed
+  ): this;
+  constructor(
+    options: {|
+      backlog?: number,
+      clientTracking?: boolean,
+      handleProtocols?: () => mixed,
+      host?: string,
+      maxPayload?: number,
+      noServer?: boolean,
+      path?: string,
+      perMessageDeflate?: boolean | ws$PerMessageDeflateOptions,
+      port?: number,
+      server: http$Server | https$Server,
+      verifyClient?: () => mixed,
+    |},
+    callback?: () => mixed
+  ): this;
+  constructor(
+    options: {|
+      backlog?: number,
+      clientTracking?: boolean,
+      handleProtocols?: () => mixed,
+      host?: string,
+      maxPayload?: number,
+      noServer: boolean,
+      path?: string,
+      perMessageDeflate?: boolean | ws$PerMessageDeflateOptions,
+      port?: number,
+      server?: http$Server | https$Server,
+      verifyClient?: () => mixed,
+    |},
+    callback?: () => mixed
+  ): this;
+
+  /**
+   * Emitted when the server closes.
+   */
+  on(event: 'close', () => mixed): this;
+
+  /**
+   * Emitted when the handshake is complete.
+   */
+  on(
+    event: 'connection',
+    (socket: ws$WebSocket, request: http$IncomingMessage<>) => mixed
+  ): this;
+
+  /**
+   * Emitted when an error occurs on the underlying server.
+   */
+  on(event: 'error', (error: Error) => mixed): this;
+
+  /**
+   * Emitted before the response headers are written to the socket as part of
+   * the handshake.
+   */
+  on(
+    event: 'headers',
+    (headers: Array<string>, request: http$IncomingMessage<>) => mixed
+  ): this;
+
+  /**
+   * Emitted when the underlying server has been bound.
+   */
+  on(event: 'listening', () => mixed): this;
+
+  /**
+   * Returns the bound address, the address family name, and port of the server
+   * as reported by the operating system if listening on an IP socket.
+   * If the server is listening on a pipe or UNIX domain socket, the name is
+   * returned as a string.
+   */
+  address():
+    | null
+    | string
+    | {| port?: number, family?: string, address?: string |};
+
+  /**
+   * A set that stores all connected clients. Please note that this property is
+   * only added when the `clientTracking` is truthy.
+   */
+  clients: Set<ws$WebSocket>;
+
+  /**
+   * Close the server.
+   */
+  close(callback?: () => mixed): void;
+
+  /**
+   * Handle a HTTP Upgrade request.
+   */
+  handleUpgrade(
+    request: http$IncomingMessage<>,
+    socket: net$Socket,
+    head: Buffer,
+    callback: (?ws$WebSocket) => mixed
+  ): void;
+
+  /**
+   * See if a given request should be handled by this server instance.
+   */
+  shouldHandle(request: http$IncomingMessage<>): boolean;
+}
+
+declare type ws$WebSocketOptions = {
+  followRedirects?: boolean,
+  handshakeTimeout?: number,
+  maxRedirects?: number,
+  perMessageDeflate?: boolean | ws$PerMessageDeflateOptions,
+  protocolVersion?: number,
+  origin?: string,
+  maxPayload?: number,
+  ...requestOptions,
+  agent?: boolean | http$Agent<> | http$Agent<tls$TLSSocket>,
+  createConnection?:
+    | ((options: net$connectOptions, callback?: () => mixed) => net$Socket)
+    | ((options: tls$connectOptions, callback?: () => mixed) => tls$TLSSocket),
+  ...
+};
+
+declare type ws$CloseListener = (code: number, reason: string) => mixed;
+declare type ws$ErrorListener = (error: Error) => mixed;
+declare type ws$MessageListener = (
+  data: string | Buffer | ArrayBuffer | Array<Buffer>
+) => mixed;
+declare type ws$OpenListener = () => mixed;
+declare type ws$PingListener = (Buffer) => mixed;
+declare type ws$PongListener = (Buffer) => mixed;
+declare type ws$UnexpectedResponseListener = (
+  request: http$ClientRequest<>,
+  response: http$IncomingMessage<>
+) => mixed;
+declare type ws$UpgradeListener = (response: http$IncomingMessage<>) => mixed;
+
+declare class ws$WebSocket extends events$EventEmitter {
+  static Server: typeof ws$WebSocketServer;
+
+  static createWebSocketStream: (
+    WebSocket: ws$WebSocket,
+    options?: duplexStreamOptions
+  ) => stream$Duplex;
+
+  static CONNECTING: number;
+  static OPEN: number;
+  static CLOSING: number;
+  static CLOSED: number;
+
+  /**
+   * Create a `WebSocket` instance.
+   */
+  constructor(
+    address: string | URL,
+    protocols?: string | Array<string>,
+    options?: ws$WebSocketOptions
+  ): this;
+  constructor(address: string | URL, options: ws$WebSocketOptions): this;
+
+  /*
+   * Emitted when the connection is closed.
+   */
+  on('close', ws$CloseListener): this;
+
+  /*
+   * Emitted when an error occurs.
+   */
+  on('error', ws$ErrorListener): this;
+
+  /*
+   * Emitted when a message is received from the server.
+   */
+  on('message', ws$MessageListener): this;
+
+  /*
+   * Emitted when the connection is established.
+   */
+  on('open', ws$OpenListener): this;
+
+  /*
+   * Emitted when a ping is received from the server.
+   */
+  on('ping', ws$PingListener): this;
+
+  /*
+   * Emitted when a pong is received from the server.
+   */
+  on('pong', ws$PongListener): this;
+
+  /*
+   * Emitted when the server response is not the expected one,
+   * for example a 401 response.
+   */
+  on('unexpected-response', ws$UnexpectedResponseListener): this;
+
+  /*
+   * Emitted when response headers are received from the server as part of the
+   * handshake.
+   */
+  on('upgrade', ws$UpgradeListener): this;
+
+  /**
+   * Register an event listener emulating the `EventTarget` interface.
+   */
+  addEventListener(
+    type: 'close',
+    listener: ws$CloseListener,
+    options?: {| once?: boolean |}
+  ): this;
+  addEventListener(
+    type: 'error',
+    listener: ws$ErrorListener,
+    options?: {| once?: boolean |}
+  ): this;
+  addEventListener(
+    type: 'message',
+    listener: ws$MessageListener,
+    options?: {| once?: boolean |}
+  ): this;
+  addEventListener(
+    type: 'open',
+    listener: ws$OpenListener,
+    options?: {| once?: boolean |}
+  ): this;
+  addEventListener(
+    type: 'ping',
+    listener: ws$PingListener,
+    options?: {| once?: boolean |}
+  ): this;
+  addEventListener(
+    type: 'pong',
+    listener: ws$PongListener,
+    options?: {| once?: boolean |}
+  ): this;
+  addEventListener(
+    type: 'unexpected-response',
+    ws$UnexpectedResponseListener,
+    options?: {| once?: boolean |}
+  ): this;
+  addEventListener(
+    type: 'upgrade',
+    listener: ws$UpgradeListener,
+    options?: {| once?: boolean |}
+  ): this;
+
+  /**
+   * A string indicating the type of binary data being transmitted by the
+   * connection.
+   */
+  binaryType: string;
+
+  /**
+   * The number of bytes of data that have been queued using calls to send()
+   * but not yet transmitted to the network.
+   */
+  bufferedAmount: number;
+
+  /**
+   * Initiate a closing handshake.
+   */
+  close(code?: number, reason?: string): void;
+
+  /**
+   * The negotiated extensions.
+   */
+  extensions: string;
+
+  /**
+   * Send a ping.
+   */
+  ping(data?: any, mask?: boolean, callback?: () => mixed): void;
+  ping(data: any, callback: () => mixed): void;
+  ping(callback: () => mixed): void;
+
+  /**
+   * Send a pong.
+   */
+  pong(data?: any, mask?: boolean, callback?: () => mixed): void;
+  pong(data: any, callback: () => mixed): void;
+  pong(callback: () => mixed): void;
+
+  /**
+   * The subprotocol selected by the server.
+   */
+  protocol: string;
+
+  /**
+   * The current state of the connection.
+   */
+  readyState: number;
+
+  /**
+   * Removes an event listener emulating the `EventTarget` interface.
+   */
+  removeEventListener(type: 'close', listener: ws$CloseListener): this;
+  removeEventListener(type: 'error', listener: ws$ErrorListener): this;
+  removeEventListener(type: 'message', listener: ws$MessageListener): this;
+  removeEventListener(type: 'open', listener: ws$OpenListener): this;
+  removeEventListener(type: 'ping', listener: ws$PingListener): this;
+  removeEventListener(type: 'pong', listener: ws$PongListener): this;
+  removeEventListener(
+    type: 'unexpected-response',
+    ws$UnexpectedResponseListener
+  ): this;
+  removeEventListener(type: 'upgrade', listener: ws$UpgradeListener): this;
+
+  /**
+   * Send a data message.
+   */
+  send(
+    data?: any,
+    options?: {|
+      compress?: boolean,
+      binary?: boolean,
+      mask?: boolean,
+      fin?: boolean,
+    |},
+    callback?: () => mixed
+  ): void;
+  send(data: any, callback: () => mixed): void;
+
+  /**
+   * Forcibly close the connection.
+   */
+  terminate(): void;
+}
+
+declare module 'ws' {
+  declare module.exports: typeof ws$WebSocket;
+}