/// import { ILogger, IResolver } from 'agentstack'; import { WebApplicationSettings } from './WebApplicationSettings'; import { HttpError } from '../utils/HttpErrors'; import { Identity } from '../utils/Identity'; import { Attachments } from './Attachment'; import { IncomingHttpHeaders } from "http"; import { WebRequest } from './WebRequest'; import { WebResponse } from './WebResponse'; import { WebCookies } from './WebCookies'; export interface WebContext extends IResolver { readonly req: WebRequest; readonly res: WebResponse; readonly error: Error | HttpError | any; verbose: boolean; readonly identity: Identity; readonly logger: ILogger; readonly settings: T; readonly state: any; readonly ip: string; readonly url: string; readonly href: string; readonly publicUrl: string; readonly origin: string; readonly protocol: string; readonly hostname: string; readonly port: number; readonly path: string; readonly method: string; readonly params: any; readonly query: any; readonly headers: IncomingHttpHeaders; readonly cookies: WebCookies; fingerprint(): any; readonly country: string | null; readonly attachments: Attachments; accepts(...type: Array): string | false; is(...type: Array): string | false | null; range(max: number): any; status: number; type: string; length: number; lastModified: Date; etag: string; body: any; vary(field: string): void; attachment(filename: string): void; redirect(url: string): void; get(name: string): number | string | string[] | undefined; set(name: string, value: number | string | string[]): void; append(name: string, value: number | string): void; remove(name: string): void; }