public final class io/ktor/websocket/CloseReason {
	public fun <init> (Lio/ktor/websocket/CloseReason$Codes;Ljava/lang/String;)V
	public fun <init> (SLjava/lang/String;)V
	public final fun component1 ()S
	public final fun component2 ()Ljava/lang/String;
	public final fun copy (SLjava/lang/String;)Lio/ktor/websocket/CloseReason;
	public static synthetic fun copy$default (Lio/ktor/websocket/CloseReason;SLjava/lang/String;ILjava/lang/Object;)Lio/ktor/websocket/CloseReason;
	public fun equals (Ljava/lang/Object;)Z
	public final fun getCode ()S
	public final fun getKnownReason ()Lio/ktor/websocket/CloseReason$Codes;
	public final fun getMessage ()Ljava/lang/String;
	public fun hashCode ()I
	public fun toString ()Ljava/lang/String;
}

public final class io/ktor/websocket/CloseReason$Codes : java/lang/Enum {
	public static final field CANNOT_ACCEPT Lio/ktor/websocket/CloseReason$Codes;
	public static final field CLOSED_ABNORMALLY Lio/ktor/websocket/CloseReason$Codes;
	public static final field Companion Lio/ktor/websocket/CloseReason$Codes$Companion;
	public static final field GOING_AWAY Lio/ktor/websocket/CloseReason$Codes;
	public static final field INTERNAL_ERROR Lio/ktor/websocket/CloseReason$Codes;
	public static final field NORMAL Lio/ktor/websocket/CloseReason$Codes;
	public static final field NOT_CONSISTENT Lio/ktor/websocket/CloseReason$Codes;
	public static final field NO_EXTENSION Lio/ktor/websocket/CloseReason$Codes;
	public static final field PROTOCOL_ERROR Lio/ktor/websocket/CloseReason$Codes;
	public static final field SERVICE_RESTART Lio/ktor/websocket/CloseReason$Codes;
	public static final field TOO_BIG Lio/ktor/websocket/CloseReason$Codes;
	public static final field TRY_AGAIN_LATER Lio/ktor/websocket/CloseReason$Codes;
	public static final field UNEXPECTED_CONDITION Lio/ktor/websocket/CloseReason$Codes;
	public static final field VIOLATED_POLICY Lio/ktor/websocket/CloseReason$Codes;
	public final fun getCode ()S
	public static fun valueOf (Ljava/lang/String;)Lio/ktor/websocket/CloseReason$Codes;
	public static fun values ()[Lio/ktor/websocket/CloseReason$Codes;
}

public final class io/ktor/websocket/CloseReason$Codes$Companion {
	public final fun byCode (S)Lio/ktor/websocket/CloseReason$Codes;
}

public abstract interface class io/ktor/websocket/DefaultWebSocketSession : io/ktor/websocket/WebSocketSession {
	public abstract fun getCloseReason ()Lkotlinx/coroutines/Deferred;
	public abstract fun getPingIntervalMillis ()J
	public abstract fun getTimeoutMillis ()J
	public abstract fun setPingIntervalMillis (J)V
	public abstract fun setTimeoutMillis (J)V
	public abstract fun start (Ljava/util/List;)V
}

public final class io/ktor/websocket/DefaultWebSocketSession$DefaultImpls {
	public static fun send (Lio/ktor/websocket/DefaultWebSocketSession;Lio/ktor/websocket/Frame;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
	public static synthetic fun start$default (Lio/ktor/websocket/DefaultWebSocketSession;Ljava/util/List;ILjava/lang/Object;)V
}

public final class io/ktor/websocket/DefaultWebSocketSessionKt {
	public static final fun DefaultWebSocketSession (Lio/ktor/websocket/WebSocketSession;JJ)Lio/ktor/websocket/DefaultWebSocketSession;
	public static synthetic fun DefaultWebSocketSession$default (Lio/ktor/websocket/WebSocketSession;JJILjava/lang/Object;)Lio/ktor/websocket/DefaultWebSocketSession;
}

public abstract class io/ktor/websocket/Frame {
	public static final field Companion Lio/ktor/websocket/Frame$Companion;
	public synthetic fun <init> (ZLio/ktor/websocket/FrameType;[BLkotlinx/coroutines/DisposableHandle;ZZZILkotlin/jvm/internal/DefaultConstructorMarker;)V
	public synthetic fun <init> (ZLio/ktor/websocket/FrameType;[BLkotlinx/coroutines/DisposableHandle;ZZZLkotlin/jvm/internal/DefaultConstructorMarker;)V
	public final fun copy ()Lio/ktor/websocket/Frame;
	public final fun getBuffer ()Ljava/nio/ByteBuffer;
	public final fun getData ()[B
	public final fun getDisposableHandle ()Lkotlinx/coroutines/DisposableHandle;
	public final fun getFin ()Z
	public final fun getFrameType ()Lio/ktor/websocket/FrameType;
	public final fun getRsv1 ()Z
	public final fun getRsv2 ()Z
	public final fun getRsv3 ()Z
	public fun toString ()Ljava/lang/String;
}

public final class io/ktor/websocket/Frame$Binary : io/ktor/websocket/Frame {
	public fun <init> (ZLio/ktor/utils/io/core/ByteReadPacket;)V
	public fun <init> (ZLjava/nio/ByteBuffer;)V
	public fun <init> (Z[B)V
	public fun <init> (Z[BZZZ)V
	public synthetic fun <init> (Z[BZZZILkotlin/jvm/internal/DefaultConstructorMarker;)V
}

public final class io/ktor/websocket/Frame$Close : io/ktor/websocket/Frame {
	public fun <init> ()V
	public fun <init> (Lio/ktor/utils/io/core/ByteReadPacket;)V
	public fun <init> (Lio/ktor/websocket/CloseReason;)V
	public fun <init> (Ljava/nio/ByteBuffer;)V
	public fun <init> ([B)V
}

public final class io/ktor/websocket/Frame$Companion {
	public final fun byType (ZLio/ktor/websocket/FrameType;[BZZZ)Lio/ktor/websocket/Frame;
}

public final class io/ktor/websocket/Frame$Ping : io/ktor/websocket/Frame {
	public fun <init> (Lio/ktor/utils/io/core/ByteReadPacket;)V
	public fun <init> (Ljava/nio/ByteBuffer;)V
	public fun <init> ([B)V
}

public final class io/ktor/websocket/Frame$Pong : io/ktor/websocket/Frame {
	public fun <init> (Lio/ktor/utils/io/core/ByteReadPacket;)V
	public fun <init> (Ljava/nio/ByteBuffer;)V
	public fun <init> (Ljava/nio/ByteBuffer;Lkotlinx/coroutines/DisposableHandle;)V
	public synthetic fun <init> (Ljava/nio/ByteBuffer;Lkotlinx/coroutines/DisposableHandle;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
	public fun <init> ([BLkotlinx/coroutines/DisposableHandle;)V
	public synthetic fun <init> ([BLkotlinx/coroutines/DisposableHandle;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
}

public final class io/ktor/websocket/Frame$Text : io/ktor/websocket/Frame {
	public fun <init> (Ljava/lang/String;)V
	public fun <init> (ZLio/ktor/utils/io/core/ByteReadPacket;)V
	public fun <init> (ZLjava/nio/ByteBuffer;)V
	public fun <init> (Z[B)V
	public fun <init> (Z[BZZZ)V
	public synthetic fun <init> (Z[BZZZILkotlin/jvm/internal/DefaultConstructorMarker;)V
}

public final class io/ktor/websocket/FrameCommonKt {
	public static final fun readBytes (Lio/ktor/websocket/Frame;)[B
	public static final fun readReason (Lio/ktor/websocket/Frame$Close;)Lio/ktor/websocket/CloseReason;
	public static final fun readText (Lio/ktor/websocket/Frame$Text;)Ljava/lang/String;
}

public final class io/ktor/websocket/FrameParser {
	public fun <init> ()V
	public final fun bodyComplete ()V
	public final fun frame (Ljava/nio/ByteBuffer;)V
	public final fun getBodyReady ()Z
	public final fun getFin ()Z
	public final fun getFrameType ()Lio/ktor/websocket/FrameType;
	public final fun getLength ()J
	public final fun getMask ()Z
	public final fun getMaskKey ()Ljava/lang/Integer;
	public final fun getRsv1 ()Z
	public final fun getRsv2 ()Z
	public final fun getRsv3 ()Z
}

public final class io/ktor/websocket/FrameParser$State : java/lang/Enum {
	public static final field BODY Lio/ktor/websocket/FrameParser$State;
	public static final field HEADER0 Lio/ktor/websocket/FrameParser$State;
	public static final field LENGTH Lio/ktor/websocket/FrameParser$State;
	public static final field MASK_KEY Lio/ktor/websocket/FrameParser$State;
	public static fun valueOf (Ljava/lang/String;)Lio/ktor/websocket/FrameParser$State;
	public static fun values ()[Lio/ktor/websocket/FrameParser$State;
}

public final class io/ktor/websocket/FrameTooBigException : java/lang/Exception, kotlinx/coroutines/CopyableThrowable {
	public fun <init> (J)V
	public fun createCopy ()Lio/ktor/websocket/FrameTooBigException;
	public synthetic fun createCopy ()Ljava/lang/Throwable;
	public final fun getFrameSize ()J
	public fun getMessage ()Ljava/lang/String;
}

public final class io/ktor/websocket/FrameType : java/lang/Enum {
	public static final field BINARY Lio/ktor/websocket/FrameType;
	public static final field CLOSE Lio/ktor/websocket/FrameType;
	public static final field Companion Lio/ktor/websocket/FrameType$Companion;
	public static final field PING Lio/ktor/websocket/FrameType;
	public static final field PONG Lio/ktor/websocket/FrameType;
	public static final field TEXT Lio/ktor/websocket/FrameType;
	public final fun getControlFrame ()Z
	public final fun getOpcode ()I
	public static fun valueOf (Ljava/lang/String;)Lio/ktor/websocket/FrameType;
	public static fun values ()[Lio/ktor/websocket/FrameType;
}

public final class io/ktor/websocket/FrameType$Companion {
	public final fun get (I)Lio/ktor/websocket/FrameType;
}

public final class io/ktor/websocket/RawWebSocketCommonKt {
	public static final fun readFrame (Lio/ktor/utils/io/ByteReadChannel;JILkotlin/coroutines/Continuation;)Ljava/lang/Object;
	public static final fun writeFrame (Lio/ktor/utils/io/ByteWriteChannel;Lio/ktor/websocket/Frame;ZLkotlin/coroutines/Continuation;)Ljava/lang/Object;
}

public final class io/ktor/websocket/RawWebSocketJvmKt {
	public static final fun RawWebSocket (Lio/ktor/utils/io/ByteReadChannel;Lio/ktor/utils/io/ByteWriteChannel;JZLkotlin/coroutines/CoroutineContext;)Lio/ktor/websocket/WebSocketSession;
	public static synthetic fun RawWebSocket$default (Lio/ktor/utils/io/ByteReadChannel;Lio/ktor/utils/io/ByteWriteChannel;JZLkotlin/coroutines/CoroutineContext;ILjava/lang/Object;)Lio/ktor/websocket/WebSocketSession;
}

public final class io/ktor/websocket/Serializer {
	public fun <init> ()V
	public final fun enqueue (Lio/ktor/websocket/Frame;)V
	public final fun getHasOutstandingBytes ()Z
	public final fun getMasking ()Z
	public final fun getRemainingCapacity ()I
	public final fun serialize (Ljava/nio/ByteBuffer;)V
	public final fun setMasking (Z)V
}

public final class io/ktor/websocket/SimpleFrameCollector {
	public fun <init> ()V
	public final fun getHasRemaining ()Z
	public final fun handle (Ljava/nio/ByteBuffer;)V
	public final fun start (ILjava/nio/ByteBuffer;)V
	public final fun take (Ljava/lang/Integer;)Ljava/nio/ByteBuffer;
}

public final class io/ktor/websocket/WebSocketDeflateExtension : io/ktor/websocket/WebSocketExtension {
	public static final field Companion Lio/ktor/websocket/WebSocketDeflateExtension$Companion;
	public fun clientNegotiation (Ljava/util/List;)Z
	public fun getFactory ()Lio/ktor/websocket/WebSocketExtensionFactory;
	public fun getProtocols ()Ljava/util/List;
	public fun processIncomingFrame (Lio/ktor/websocket/Frame;)Lio/ktor/websocket/Frame;
	public fun processOutgoingFrame (Lio/ktor/websocket/Frame;)Lio/ktor/websocket/Frame;
	public fun serverNegotiation (Ljava/util/List;)Ljava/util/List;
}

public final class io/ktor/websocket/WebSocketDeflateExtension$Companion : io/ktor/websocket/WebSocketExtensionFactory {
	public fun getKey ()Lio/ktor/util/AttributeKey;
	public fun getRsv1 ()Z
	public fun getRsv2 ()Z
	public fun getRsv3 ()Z
	public fun install (Lkotlin/jvm/functions/Function1;)Lio/ktor/websocket/WebSocketDeflateExtension;
	public synthetic fun install (Lkotlin/jvm/functions/Function1;)Lio/ktor/websocket/WebSocketExtension;
}

public final class io/ktor/websocket/WebSocketDeflateExtension$Config {
	public fun <init> ()V
	public final fun compressIf (Lkotlin/jvm/functions/Function1;)V
	public final fun compressIfBiggerThan (I)V
	public final fun configureProtocols (Lkotlin/jvm/functions/Function1;)V
	public final fun getClientNoContextTakeOver ()Z
	public final fun getCompressionLevel ()I
	public final fun getServerNoContextTakeOver ()Z
	public final fun setClientNoContextTakeOver (Z)V
	public final fun setCompressionLevel (I)V
	public final fun setServerNoContextTakeOver (Z)V
}

public abstract interface class io/ktor/websocket/WebSocketExtension {
	public abstract fun clientNegotiation (Ljava/util/List;)Z
	public abstract fun getFactory ()Lio/ktor/websocket/WebSocketExtensionFactory;
	public abstract fun getProtocols ()Ljava/util/List;
	public abstract fun processIncomingFrame (Lio/ktor/websocket/Frame;)Lio/ktor/websocket/Frame;
	public abstract fun processOutgoingFrame (Lio/ktor/websocket/Frame;)Lio/ktor/websocket/Frame;
	public abstract fun serverNegotiation (Ljava/util/List;)Ljava/util/List;
}

public abstract interface class io/ktor/websocket/WebSocketExtensionFactory {
	public abstract fun getKey ()Lio/ktor/util/AttributeKey;
	public abstract fun getRsv1 ()Z
	public abstract fun getRsv2 ()Z
	public abstract fun getRsv3 ()Z
	public abstract fun install (Lkotlin/jvm/functions/Function1;)Lio/ktor/websocket/WebSocketExtension;
}

public final class io/ktor/websocket/WebSocketExtensionHeader {
	public fun <init> (Ljava/lang/String;Ljava/util/List;)V
	public final fun getName ()Ljava/lang/String;
	public final fun getParameters ()Ljava/util/List;
	public final fun parseParameters ()Lkotlin/sequences/Sequence;
	public fun toString ()Ljava/lang/String;
}

public final class io/ktor/websocket/WebSocketExtensionHeaderKt {
	public static final fun parseWebSocketExtensions (Ljava/lang/String;)Ljava/util/List;
}

public final class io/ktor/websocket/WebSocketExtensionsConfig {
	public fun <init> ()V
	public final fun build ()Ljava/util/List;
	public final fun install (Lio/ktor/websocket/WebSocketExtensionFactory;Lkotlin/jvm/functions/Function1;)V
	public static synthetic fun install$default (Lio/ktor/websocket/WebSocketExtensionsConfig;Lio/ktor/websocket/WebSocketExtensionFactory;Lkotlin/jvm/functions/Function1;ILjava/lang/Object;)V
}

public final class io/ktor/websocket/WebSocketReader : kotlinx/coroutines/CoroutineScope {
	public fun <init> (Lio/ktor/utils/io/ByteReadChannel;Lkotlin/coroutines/CoroutineContext;JLio/ktor/utils/io/pool/ObjectPool;)V
	public synthetic fun <init> (Lio/ktor/utils/io/ByteReadChannel;Lkotlin/coroutines/CoroutineContext;JLio/ktor/utils/io/pool/ObjectPool;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
	public fun getCoroutineContext ()Lkotlin/coroutines/CoroutineContext;
	public final fun getIncoming ()Lkotlinx/coroutines/channels/ReceiveChannel;
	public final fun getMaxFrameSize ()J
	public final fun setMaxFrameSize (J)V
}

public abstract interface class io/ktor/websocket/WebSocketSession : kotlinx/coroutines/CoroutineScope {
	public abstract fun flush (Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
	public abstract fun getExtensions ()Ljava/util/List;
	public abstract fun getIncoming ()Lkotlinx/coroutines/channels/ReceiveChannel;
	public abstract fun getMasking ()Z
	public abstract fun getMaxFrameSize ()J
	public abstract fun getOutgoing ()Lkotlinx/coroutines/channels/SendChannel;
	public abstract fun send (Lio/ktor/websocket/Frame;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
	public abstract fun setMasking (Z)V
	public abstract fun setMaxFrameSize (J)V
	public abstract fun terminate ()V
}

public final class io/ktor/websocket/WebSocketSession$DefaultImpls {
	public static fun send (Lio/ktor/websocket/WebSocketSession;Lio/ktor/websocket/Frame;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
}

public final class io/ktor/websocket/WebSocketSessionKt {
	public static final fun close (Lio/ktor/websocket/WebSocketSession;Lio/ktor/websocket/CloseReason;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
	public static final fun close (Lio/ktor/websocket/WebSocketSession;Ljava/lang/Throwable;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
	public static synthetic fun close$default (Lio/ktor/websocket/WebSocketSession;Lio/ktor/websocket/CloseReason;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object;
	public static final fun closeExceptionally (Lio/ktor/websocket/WebSocketSession;Ljava/lang/Throwable;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
	public static final fun extension (Lio/ktor/websocket/WebSocketSession;Lio/ktor/websocket/WebSocketExtensionFactory;)Lio/ktor/websocket/WebSocketExtension;
	public static final fun extensionOrNull (Lio/ktor/websocket/WebSocketSession;Lio/ktor/websocket/WebSocketExtensionFactory;)Lio/ktor/websocket/WebSocketExtension;
	public static final fun send (Lio/ktor/websocket/WebSocketSession;Ljava/lang/String;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
	public static final fun send (Lio/ktor/websocket/WebSocketSession;[BLkotlin/coroutines/Continuation;)Ljava/lang/Object;
}

public final class io/ktor/websocket/WebSocketWriter : kotlinx/coroutines/CoroutineScope {
	public fun <init> (Lio/ktor/utils/io/ByteWriteChannel;Lkotlin/coroutines/CoroutineContext;ZLio/ktor/utils/io/pool/ObjectPool;)V
	public synthetic fun <init> (Lio/ktor/utils/io/ByteWriteChannel;Lkotlin/coroutines/CoroutineContext;ZLio/ktor/utils/io/pool/ObjectPool;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
	public final fun close ()V
	public final fun flush (Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
	public fun getCoroutineContext ()Lkotlin/coroutines/CoroutineContext;
	public final fun getMasking ()Z
	public final fun getOutgoing ()Lkotlinx/coroutines/channels/SendChannel;
	public final fun getPool ()Lio/ktor/utils/io/pool/ObjectPool;
	public final fun send (Lio/ktor/websocket/Frame;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
	public final fun setMasking (Z)V
}

