import { CloudCodeRequest } from './CloudCodeRequest'; import { CloudCodeResponse } from './CloudCodeResponse'; import { AccessControl } from './AuthResponse'; import { InternalTaskContext } from './InternalTaskContext'; import { TaskContext } from './TaskContext'; declare type Parameters = { [key: string]: any; }; export interface RequestContext { request: CloudCodeRequest; response: CloudCodeResponse; authContext: any; /** * Merges: * request.json() * request.queryParameters * URL parameters (highest priority) */ params: Parameters; } export interface AuthenticationContext { request: CloudCodeRequest; params: Parameters; access: AccessControl; } declare type RequestFunction = (this: TaskContext, context: RequestContext) => Promise; declare type AuthenticationFunction = (this: TaskContext, context: AuthenticationContext) => Promise; export declare class Router { static forModule(taskModule: any): Router; private handlers; authenticator: AuthenticationFunction; constructor(); get(path: string, handler: RequestFunction): void; post(path: string, handler: RequestFunction): void; put(path: string, handler: RequestFunction): void; patch(path: string, handler: RequestFunction): void; delete(path: string, handler: RequestFunction): void; head(path: string, handler: RequestFunction): void; options(path: string, handler: RequestFunction): void; handleRequest(taskContext: InternalTaskContext, request: CloudCodeRequest): Promise; isMethodAllowed(method: string): boolean; } export {};