import * as express from 'express'; import { IncomingHttpHeaders } from 'http'; import { Writable } from 'stream'; import { IFormData } from './IFormData'; import { IAuthTokenData } from './IAuthTokenData'; import { IDatabasePosition } from './IDatabasePosition'; export type IQueryParamValue = undefined | string | IQueryParams | (string | IQueryParams)[]; export interface IQueryParams { [key: string]: IQueryParamValue; } export interface IParameterMap { [key: string]: string | string[]; } export declare class Request { private $request; constructor(request: express.Request); getBody(): TBody; getForm(): Promise; getHeaders(): IncomingHttpHeaders; getHeader(name: string): string; getQueryVariables(): IQueryParams; getQueryVariable(name: string): IQueryParamValue; getQuerySingleVariable(name: string): string; getQueryMultiVariable(name: string): string[]; getParams(): IParameterMap; getParam(name: string): string | string[]; /** * Gets a URL parameter as string. If the value is multiple * then only the first value is returned. * This is a convenience method over `getParam` which returns a union. */ getURLSingleParam(name: string): string; /** * Gets a URL parameter as string[]. * This is a convenience method over `getParam` which returns a union. */ getURLMultiParam(name: string): string[]; getIP(): string; getForwardedIP(): string; getHostname(): string; getMethod(): string; getURL(): string; isSecure(): boolean; pipe(destination: Writable): Writable; unpipe(source: Writable): void; getRequestSource(): express.Request; /** * Reads the Page/Position DB headers if present * Will return null if headers are not parseable. * * @since 9.1.0 * @returns {IDatabasePosition} */ getDatabasePosition(): IDatabasePosition; getAuthenticationToken(): Promise; }