/**
 * @since 1.0.0
 */
import * as Effect from "effect/Effect";
import * as Inspectable from "effect/Inspectable";
import * as Option from "effect/Option";
import type * as Schema from "effect/Schema";
import type * as Stream from "effect/Stream";
import * as Headers from "effect/unstable/http/Headers";
import * as IncomingMessage from "effect/unstable/http/HttpIncomingMessage";
import * as UrlParams from "effect/unstable/http/UrlParams";
import type * as Http from "node:http";
/**
 * @since 1.0.0
 * @category Constructors
 */
export declare abstract class NodeHttpIncomingMessage<E> extends Inspectable.Class implements IncomingMessage.HttpIncomingMessage<E> {
    /**
     * @since 1.0.0
     */
    readonly [IncomingMessage.TypeId]: typeof IncomingMessage.TypeId;
    readonly source: Http.IncomingMessage;
    readonly onError: (error: unknown) => E;
    readonly remoteAddressOverride?: Option.Option<string> | undefined;
    constructor(source: Http.IncomingMessage, onError: (error: unknown) => E, remoteAddressOverride?: Option.Option<string>);
    get headers(): Headers.Headers;
    get remoteAddress(): Option.Option<string>;
    private textEffect;
    get text(): Effect.Effect<string, E>;
    get textUnsafe(): string;
    get json(): Effect.Effect<Schema.Json, E>;
    get jsonUnsafe(): Schema.Json;
    get urlParamsBody(): Effect.Effect<UrlParams.UrlParams, E>;
    get stream(): Stream.Stream<Uint8Array, E>;
    private arrayBufferEffect;
    get arrayBuffer(): Effect.Effect<ArrayBuffer, E>;
}
//# sourceMappingURL=NodeHttpIncomingMessage.d.ts.map