///
// worktop/cache
export const Cache: Cache;
export function isCachable(res: Response): boolean;
export function toCache(event: FetchEvent, res: Response): Response;
// worktop/router
export type Route = { params: Params; handler: Handler | false };
export type Handler = (req: ServerRequest, res: ServerResponse) => void | Response | Promise;
export type Params = Record;
export declare class Router {
add(method: string, route: RegExp | string, handler: Handler): void;
find(method: string, pathname: string): Route;
run(request: Request): Promise;
listen(event: FetchEvent): void;
}
// worktop/request
export interface ServerRequest {
method: string;
url: string;
path: string;
params: Params;
query: URLSearchParams;
search: string;
headers: Headers;
body: any;
}
// worktop/response
export type FetchHandler = (event: FetchEvent) => void;
export function reply(handler: (event: FetchEvent) => Promise): FetchHandler;
type HeadersObject = Record;
export declare class ServerResponse {
constructor(method: string);
readonly finished: boolean;
headers: Headers;
body: BodyInit | null;
statusCode: number;
get status(): number;
set status(x: number);
getHeaders(): HeadersObject;
getHeaderNames(): string[];
hasHeader(key: string): boolean;
getHeader(key: string): string | null;
setHeader(key: string, value: string): void;
removeHeader(key: string): void;
writeHead(code: number, headers?: HeadersObject): void;
end(data: BodyInit | null): void;
send(code: number, data?: any, headers?: HeadersObject): void;
}