import FormData from 'form-data'; export interface Cookie { name: string; value: string; path?: string; domain?: string; expires?: string; rawExpires?: string; maxAge?: number; secure?: boolean; httpOnly?: boolean; sameSite?: string; unparsed?: string; } export interface TimeoutOptions { /** How long should we wait on a request response before giving up */ requestTimeout: number; /** How long should we wait before giving up on the request received handshake */ acknowledgementTimeout?: number; } export interface CycleTLSRequestOptions { headers?: { [key: string]: any; }; cookies?: Array | { [key: string]: string; }; body?: string | URLSearchParams | FormData; ja3?: string; userAgent?: string; proxy?: string; timeout?: number; disableRedirect?: boolean; headerOrder?: string[]; insecureSkipVerify?: boolean; forceHTTP1?: boolean; } export interface CycleTLSResponse { status: number; data: string | { [key: string]: any; }; headers: { [key: string]: any; }; finalUrl: string; duration: number; } export interface CycleTLSClient { (url: string, options: CycleTLSRequestOptions, method?: "head" | "get" | "post" | "put" | "delete" | "trace" | "options" | "connect" | "patch"): Promise; head(url: string, options: CycleTLSRequestOptions): Promise; get(url: string, options: CycleTLSRequestOptions): Promise; post(url: string, options: CycleTLSRequestOptions): Promise; put(url: string, options: CycleTLSRequestOptions): Promise; delete(url: string, options: CycleTLSRequestOptions): Promise; trace(url: string, options: CycleTLSRequestOptions): Promise; options(url: string, options: CycleTLSRequestOptions): Promise; connect(url: string, options: CycleTLSRequestOptions): Promise; patch(url: string, options: CycleTLSRequestOptions): Promise; exit(): Promise; } declare const initCycleTLS: (initOptions?: { port?: number; debug?: boolean; timeout?: number; executablePath?: string; }) => Promise; export default initCycleTLS;