import type Application from "../Foundation/Application"; import type { ObjectOf } from "../Types"; import type UploadedFile from "./UploadedFile"; import type { ExtendedRequest } from "../Contracts/Request"; import SessionManager from "../Session/SessionManager"; import type { AuthManager } from "../Auth/AuthManager"; import type { StatefulGuard } from "../Contracts/Auth/StatefulGuard"; import type { Macro } from "../Support/Traits/Macroable"; import Macroable from "../Support/Traits/Macroable"; import CookieJar from "../Cookie/CookieJar"; import type { Routes } from "../Contracts/Routing/Route"; import type FormRequest from "../Foundation/Http/FormRequest"; interface RequestCookies { [key: string]: any; set: (key: string, value: any) => void; get: (key: string) => any; } export declare class Request extends Macroable { protected static macros: ObjectOf; protected app: Application; files: ObjectOf; protected req: ExtendedRequest; protected data: ObjectOf; protected sessionManager: SessionManager | null; protected authManager: (AuthManager & StatefulGuard) | null; protected _cookies: ObjectOf | null; protected _cookieJar: CookieJar | null; protected router: Partial; protected formRequest: FormRequest | null; constructor(app: Application, req: ExtendedRequest); get(key: string, defaultValue?: any): T; input(key: string, defaultValue?: any): any; header(key: string): string | string[] | undefined; only(keys: string[]): ObjectOf; all(): any; allFiles(): ObjectOf; file(key: string): UploadedFile; method(): string; merge(newData: ObjectOf): this; getOriginalRequest(): ExtendedRequest; instance(): this; session(): SessionManager; get cookies(): RequestCookies; get cookieJar(): CookieJar; protected setCookie(key: string, value: any): void; protected getCookie(key: string): any; auth(): AuthManager & StatefulGuard; wantsJson(): boolean; /** * Validate request inputs. */ validate(rules: ObjectOf, messages?: ObjectOf, customAttributes?: ObjectOf): Promise; /** * set Form Request for validation. */ setFormRequest(formRequest: typeof FormRequest): FormRequest; /** * Get Form Request instance */ getFormRequest(): FormRequest | null; is(...patterns: any[]): boolean; /** * Set router data to request instance */ setRouter(router: Routes): void; /** * Get router data from current route */ getRouter(): Partial; } export interface Request { macro: (name: string, macro: Macro) => any; [key: string]: any; } declare const _default: typeof Request; export default _default;