///
import { Attachments } from './Attachment';
import { IncomingHttpHeaders } from 'http';
import { ILogger } from 'agentstack';
import { WebContext } from './WebContext';
import { Identity } from '../utils/Identity';
import { WebApplicationSettings } from './WebApplicationSettings';
import { InternalWebResponse } from './InternalWebResponse';
import { InternalWebRequest } from './InternalWebRequest';
import { InternalWebCookies } from './InternalWebCookies';
import { Constructor } from 'agentframework';
export declare abstract class InternalWebContext implements WebContext {
req: InternalWebRequest;
res: InternalWebResponse;
cookies: InternalWebCookies;
releaseType(type?: Constructor): any[];
registerType(type: Constructor, initializer: Function, finalizer: Function): void;
releaseSingleton(type: Constructor): void;
registerSingleton(type: Constructor, instance: any): void;
resolve(type: Constructor, singleton?: boolean): Promise;
construct(type: Constructor, singleton?: boolean): T;
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 attachments: Attachments;
accepts(...type: Array): string | false;
is(...type: Array): string | false | null;
range(max: number): any;
get(name: string): number | string | string[] | undefined;
fingerprint(): {
timestamp: Date;
url: string;
agent: string | string[];
ip: string;
country: string;
};
readonly country: string | null;
error: any;
verbose: boolean;
status: number;
type: string;
length: number;
lastModified: Date;
etag: string;
body: any;
set(name: string, value: number | string | string[]): void;
append(name: string, value: number | string): void;
remove(name: string): void;
vary(field: string): void;
attachment(filename: string): void;
redirect(url: string, alt?: string): void;
toJSON(): any;
}