import { Effect, Layer, Schema } from "effect";
import { HttpClient } from "effect/unstable/http";
declare const HostedOutboundRequestBlocked_base: Schema.Class<HostedOutboundRequestBlocked, Schema.TaggedStruct<"HostedOutboundRequestBlocked", {
    readonly url: Schema.String;
    readonly reason: Schema.String;
}>, import("effect/Cause").YieldableError>;
export declare class HostedOutboundRequestBlocked extends HostedOutboundRequestBlocked_base {
}
export interface HostedResolvedAddress {
    readonly address: string;
    readonly family?: 4 | 6;
}
export type HostedHostnameResolver = (hostname: string) => Promise<ReadonlyArray<HostedResolvedAddress>>;
export interface HostedHttpClientOptions {
    readonly allowLocalNetwork?: boolean;
    readonly maxRedirects?: number;
    readonly fetch?: typeof globalThis.fetch;
    readonly resolveHostname?: HostedHostnameResolver;
}
export declare const validateHostedOutboundUrl: (value: string, options?: HostedHttpClientOptions) => Effect.Effect<void, HostedOutboundRequestBlocked>;
export declare const makeHostedFetch: (options?: HostedHttpClientOptions) => typeof globalThis.fetch;
export declare const makeHostedHttpClientLayer: (options?: HostedHttpClientOptions) => Layer.Layer<HttpClient.HttpClient>;
export {};
//# sourceMappingURL=hosted-http-client.d.ts.map