import { Application as ExpApplication, CookieOptions as ExpCookieOptions, ErrorRequestHandler as ExpErrorRequestHandler, NextFunction as ExpNextFunction, Request as ExpRequest, RequestHandler as ExpRequestHandler, RequestParamHandler as ExpRequestParamHandler, Response as ExpResponse, Router as ExpRouter } from "express"; import { scalar } from "./base.scalar"; import { contextComponent } from "./contextComponent"; export declare namespace httpComponent { export type App = ExpApplication; export type Router = ExpRouter; export type Req = ExpRequest; export type Res = ExpResponse; export type Next = ExpNextFunction; export type RequestHandler = ExpRequestHandler; export type RequestHandlerParams = ExpRequestHandler | Array; export type RequestParamHandler = ExpRequestParamHandler; export type ErrorRequestHandler = ExpErrorRequestHandler; export type CookieOptions = ExpCookieOptions; export interface CustomRequest extends ExpRequest, scalar.AnyObject { _custom: contextComponent.Entity; _export(): scalar.AnyObject; kauth?: Kauth; } interface Kauth { grant: KauthGrant; } interface KauthGrant { access_token: KauthGrantAccessToken; refresh_token: scalar.Title; id_token: scalar.Title; token_type: scalar.Title; expires_in: scalar.Title; } interface KauthGrantAccessToken { token: scalar.Alpha; clientId: scalar.Alpha; content: KauthGrantAccessTokenContent; } interface KauthGrantAccessTokenContent { exp: scalar.Integer; iat: scalar.Integer; aud: scalar.Alpha; sub: scalar.Uuid; azp: scalar.Alpha; name: scalar.Title; email: scalar.Email; session_state: scalar.Uuid; preferred_username: scalar.Title; } interface ResponseCookie { value: scalar.Primitive; opt: CookieOptions; } type ResponseCookieMap = scalar.StrMap; type ResponseHeaderMap = scalar.StrMap>; export interface CustomResponse extends ExpResponse, scalar.AnyObject { _custom: scalar.AnyObject; _export(): scalar.AnyObject; _error(): any; headers: ResponseHeaderMap; cookies: ResponseCookieMap; } export interface EndPointCall { host: scalar.Host; folder: scalar.Folder; query?: scalar.AnyObject; param?: Record; header?: Record; body?: scalar.Unknown; options?: scalar.AnyObject; replacements?: scalar.AnyObject; } export {}; }