/**
 * 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<string, string>;
    body?: Buffer;
}
/**
 * HTTP request structure
 */
export interface IHttpRequest extends IHttpMessage {
    method: THttpMethod;
    path: string;
    version: THttpVersion;
    query?: Record<string, string>;
}
/**
 * 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;
}
