/** * HTTP Protocol Type Definitions */ import type { THttpMethod, THttpVersion, HttpStatus } from './constants.js'; /** * HTTP request line structure */ export interface IHttpRequestLine { method: THttpMethod; path: string; version: THttpVersion; } /** * HTTP response line structure */ export interface IHttpResponseLine { version: THttpVersion; status: HttpStatus; statusText: string; } /** * HTTP header structure */ export interface IHttpHeader { name: string; value: string; } /** * HTTP message structure (base for request and response) */ export interface IHttpMessage { headers: Record; body?: Buffer; } /** * HTTP request structure */ export interface IHttpRequest extends IHttpMessage { method: THttpMethod; path: string; version: THttpVersion; query?: Record; } /** * HTTP response structure */ export interface IHttpResponse extends IHttpMessage { status: HttpStatus; statusText: string; version: THttpVersion; } /** * Parsed URL structure */ export interface IParsedUrl { protocol?: string; hostname?: string; port?: number; path?: string; query?: string; fragment?: string; }