/// <reference types="node" />
import { EventEmitter } from 'events';
import type { IncomingMessage, ServerResponse } from 'http';
import { ListenOptions } from 'net';
import type { TunComposable } from './TunComposable.js';
import { TunContext } from './TunContext.js';
export declare class TunApplication extends EventEmitter {
    middleware: TunComposable<TunContext>[];
    mountObj: Record<string, any>;
    constructor();
    use(fn: TunComposable<TunContext> | TunComposable<TunContext>): this;
    mount(name: string, obj: any): void;
    callback(): (_req: IncomingMessage, _res: ServerResponse) => Promise<void>;
    listen(option?: ListenOptions): import("http").Server;
}
