import type { PermissionMode } from "../../permissions/index.js"; import { type Static } from "@sinclair/typebox"; import type { HappyNetworkRequestCompletion, HappyNetworkTunnel } from "happy-plugins"; import type { Context } from "@steve.kite/stdlib"; export declare const managedNetworkHttpRequestSchema: import("@sinclair/typebox").TObject<{ url: import("@sinclair/typebox").TString; method: import("@sinclair/typebox").TString; headers: import("@sinclair/typebox").TRecord]>>; body: import("@sinclair/typebox").TUint8Array; hostname: import("@sinclair/typebox").TString; }>; export type ManagedNetworkHttpRequest = Static; export interface ManagedNetworkInterceptor { interceptHttp(ctx: Context, request: ManagedNetworkHttpRequest): Promise; observeTunnel(tunnel: HappyNetworkTunnel): void; recordFailure(hostname: string, error: unknown): void; shouldIntercept(hostname: string): boolean; } export interface ManagedNetworkRule { domain: string; ports?: readonly number[]; } export interface ManagedNetworkPolicy { allowLocalBinding?: boolean; allowedDomains?: readonly ManagedNetworkRule[]; allowedLoopbackPorts?: readonly number[]; deniedDomains?: readonly ManagedNetworkRule[]; } export interface ManagedNetworkBlockedRequest { host: string; port: number; protocol: "http" | "https_connect" | "socks5"; reason: "denied" | "dns_resolution_failed" | "non_public_address" | "not_allowed"; } export interface ManagedNetworkProxyHandle { blockedRequest(): ManagedNetworkBlockedRequest | undefined; close(): Promise; onBlockedRequest(listener: (request: ManagedNetworkBlockedRequest) => void): () => void; port: number; socksPort: number; } export declare function shouldApplyManagedNetworkPolicy(permissionMode: PermissionMode): boolean; export declare function shouldBypassManagedProxyForLoopback(policy: ManagedNetworkPolicy | undefined, hasIsolatedNetworkNamespace: boolean): boolean; export declare function validateManagedNetworkLoopbackPorts(ports: readonly number[]): void; export declare function withTrustedLoopbackPorts(policy: ManagedNetworkPolicy | undefined, trustedPorts: readonly number[] | undefined): ManagedNetworkPolicy | undefined;