/// import { IncomingMessage } from 'http'; import { NextApiResponse, NextApiRequest } from '../lib/utils'; import { Params } from './router'; export declare type NextApiRequestCookies = { [key: string]: string; }; export declare type NextApiRequestQuery = { [key: string]: string | string[]; }; export declare function apiResolver(req: NextApiRequest, res: NextApiResponse, params: any, resolverModule: any): Promise; /** * Parse incoming message like `json` or `urlencoded` * @param req request object */ export declare function parseBody(req: NextApiRequest, limit: string | number): Promise; /** * Parsing query arguments from request `url` string * @param url of request * @returns Object with key name of query argument and its value */ export declare function getQueryParser({ url }: IncomingMessage): () => NextApiRequestQuery; /** * Parse cookeies from `req` header * @param req request object */ export declare function getCookieParser(req: IncomingMessage): () => NextApiRequestCookies; /** * * @param res response object * @param statusCode `HTTP` status code of response */ export declare function sendStatusCode(res: NextApiResponse, statusCode: number): NextApiResponse; /** * Send `any` body to response * @param res response object * @param body of response */ export declare function sendData(res: NextApiResponse, body: any): void; /** * Send `JSON` object * @param res response object * @param jsonBody of data */ export declare function sendJson(res: NextApiResponse, jsonBody: any): void; /** * Custom error class */ export declare class ApiError extends Error { readonly statusCode: number; constructor(statusCode: number, message: string); } /** * Sends error in `response` * @param res response object * @param statusCode of response * @param message of response */ export declare function sendError(res: NextApiResponse, statusCode: number, message: string): void; interface LazyProps { req: NextApiRequest; params?: Params | boolean; } /** * Execute getter function only if its needed * @param LazyProps `req` and `params` for lazyProp * @param prop name of property * @param getter function to get data */ export declare function setLazyProp({ req, params }: LazyProps, prop: string, getter: () => T): void; export {};