import type * as Duration from "effect/Duration";
import type * as Effect from "effect/Effect";
import * as Layer from "effect/Layer";
import * as Socket from "effect/unstable/socket/Socket";
/**
 * @since 1.0.0
 */
export * from "@effect/platform-node-shared/NodeSocket";
/**
 * @since 1.0.0
 * @category layers
 */
export declare const layerWebSocketConstructor: Layer.Layer<Socket.WebSocketConstructor>;
/**
 * @since 1.0.0
 * @category layers
 */
export declare const layerWebSocketConstructorWS: Layer.Layer<Socket.WebSocketConstructor>;
/**
 * @since 1.0.0
 * @category layers
 */
export declare const layerWebSocket: (url: string | Effect.Effect<string>, options?: {
    readonly closeCodeIsError?: ((code: number) => boolean) | undefined;
    readonly openTimeout?: Duration.Input | undefined;
    readonly protocols?: string | Array<string> | undefined;
} | undefined) => Layer.Layer<Socket.Socket, never, never>;
//# sourceMappingURL=NodeSocket.d.ts.map