import { BunxyzRequest } from "./request";
export type Handler = (req: BunxyzRequest) => Response | Promise<Response>;
export type Middleware = (req: BunxyzRequest, next: () => Promise<Response>) => Promise<Response> | Response;
export declare class App {
    private routes;
    private middleware;
    private server;
    private port;
    private apiDir;
    constructor(port?: number, apiDir?: string);
    use(middleware: Middleware): void;
    get(path: string, handler: Handler): void;
    post(path: string, handler: Handler): void;
    put(path: string, handler: Handler): void;
    delete(path: string, handler: Handler): void;
    private compilePath;
    private addRoute;
    private loadApiRoutes;
    private handleRequest;
    listen(callback?: (port: number) => void): void;
    stop(): void;
}
