/**
 * An enumeration for Websocket status codes
 *
 * The data in this module has been sourced from the MDN Websocket documnentation
 * Reference: https://developer.mozilla.org/en-US/docs/Web/API/CloseEvent
 *
 * @author Stefan Bobev
 */

/**
 * @code 1000
 * @meaning Normal Closure
 * @description The connection successfully completed whatever purpose for which it was created.
 **/
export declare const NORMAL_CLOSURE = 1000;

/**
 * @code 1001
 * @meaning Going Away
 * @description The endpoint is going away, either because of a server failure or
 * because the browser is navigating away from the page that opened the connection.
 **/
export declare const GOING_AWAY = 1001;

/**
 * @code 1002
 * @meaning Protocol Error
 * @description The endpoint is terminating the connection due to a protocol error.
 **/
export declare const PROTOCOL_ERROR = 1002;

/**
 * @code 1003
 * @meaning Unsupported Data
 * @description The connection is being terminated because the endpoint received data of a type
 * it cannot accept (for example, a text-only endpoint received binary data).
 **/
export declare const UNSUPPORTED_DATA = 1003;

/**
 * @code 1005
 * @meaning No status Received
 * @description Reserved. Indicates that no status code was provided even though one was expected.
 **/
export declare const NO_STATUS_RECEIVED = 1005;

/**
 * @code 1006
 * @meaning Abnormal Closure
 * @description Reserved. Used to indicate that a connection was closed abnormally
 * (that is, with no close frame being sent) when a status code is expected.
 **/
export declare const ABNORMAL_CLOSURE = 1006;

/**
 * @code 1007
 * @meaning Invalid frame payload data
 * @description The endpoint is terminating the connection because a message was
 * received that contained inconsistent data (e.g., non-UTF-8 data within a text message).
 **/
export declare const INVALID_FRAME_PAYLOAD_DATA = 1007;

/**
 * @code 1008
 * @meaning Policy Violation
 * @description The endpoint is terminating the connection because it received a message that violates its policy.
 * This is a generic status code, used when codes 1003 and 1009 are not suitable.
 **/
export declare const POLICY_VIOLATION = 1008;

/**
 * @code 1009
 * @meaning Message too big
 * @description The endpoint is terminating the connection because a data frame was received that is too large.
 **/
export declare const MESSAGE_TOO_BIG = 1009;

/**
 * @code 1010
 * @meaning Missing Extension
 * @description The client is terminating the connection because it expected the server
 * to negotiate one or more extension, but the server didn't.
 **/
export declare const MISSING_EXTENSION = 1010;

/**
 * @code 1011
 * @meaning Internal Error
 * @description The server is terminating the connection because it encountered an
 * unexpected condition that prevented it from fulfilling the request.
 **/
export declare const INTERNAL_ERROR = 1011;

/**
 * @code 1012
 * @meaning Service Restart
 * @description The server is terminating the connection because it is restarting.
 **/
export declare const SERVICE_RESTART = 1012;

/**
 * @code 1013
 * @meaning Try Again Later
 * @description The server is terminating the connection due to a temporary condition,
 * e.g. it is overloaded and is casting off some of its clients.
 **/
export declare const TRY_AGAIN_LATER = 1013;

/**
 * @code 1014
 * @meaning Bad Gateway
 * @description The server was acting as a gateway or proxy and received an invalid response from the upstream server.
 * This is similar to 502 HTTP Status Code.
 **/
export declare const BAD_GATEWAY = 1014;

/**
 * @code 1015
 * @meaning TLS Handshake
 * @description Reserved. Indicates that the connection was closed due to a failure to perform a TLS handshake
 * (e.g., the server certificate can't be verified).
 **/
export declare const TLS_HANDSHAKE = 1015;
