import type { Request as ExpressRequest, Response as ExpressResponse } from 'express'; import type { Request, Response, RouteMethod } from '../typings'; import { Route } from './route'; import z from 'zod'; import { Server } from './server'; export declare class API { private req; private res; route: Route | undefined; authentication: TAuth; server: Server; services: TServices; constructor(_req: ExpressRequest, res: ExpressResponse, route: Route | undefined, server: Server); authorize(): Promise; validateSchema(): Promise<{ params: z.core.$ZodFormattedError | undefined; body: z.core.$ZodFormattedError | undefined; query: z.core.$ZodFormattedError | undefined; files: z.core.$ZodFormattedError | undefined; }>; send(data?: any, options?: { error?: boolean; status?: number; code?: string; message?: string; }): never; sendTyped(data: TResponse, options?: { error?: boolean; status?: number; code?: string; message?: string; }): never; status(code: number): void; throw(status: number, options?: { data?: any; }): never; get method(): RouteMethod; get body(): TBody; get params(): TParams; get query(): TQuery; get files(): TFiles; get headers(): import("http").IncomingHttpHeaders; get ip(): string; get rawPath(): any; header(key: string, value: string): void; private makeResponseBody; get _req(): Request; get _res(): Response; } //# sourceMappingURL=api.d.ts.map