/// <reference types="@adonisjs/http-server/build/adonis-typings" />
import { BaseCommand } from '@adonisjs/ace';
import type { RouteNode } from '@ioc:Adonis/Core/Route';
/**
 * Shape of a route serialized by the ListRoute JSON serializer
 */
export type SerializedRoute = {
    domain: string;
    name: string;
    pattern: string;
    handler: string;
    methods: string[];
    middleware: string[];
};
/**
 * A command to display a list of routes
 */
export default class ListRoutes extends BaseCommand {
    static commandName: string;
    static description: string;
    verbose: boolean;
    reverse: boolean;
    methodsFilter: string[];
    patternsFilter: string[];
    namesFilter: string[];
    json: boolean;
    table: boolean;
    maxWidth: number;
    /**
     * Load application
     */
    static settings: {
        loadApp: boolean;
        stayAlive: boolean;
    };
    /**
     * Returns the display handler name
     */
    private getHandlerName;
    /**
     * Apply the method filter on the route
     */
    private hasPassedMethodFilter;
    /**
     * Apply the pattern filter on the route
     */
    private hasPassedPatternFilter;
    /**
     * Apply the name filter on the route
     */
    private hasPassedNameFilter;
    /**
     * Log message
     */
    private log;
    /**
     * Serialize route to JSON
     */
    serializeRoute(route: RouteNode & {
        methods: string[];
    }, domain: string): {
        domain: string;
        name: string;
        pattern: string;
        methods: string[];
        handler: string;
        middleware: string[];
    };
    /**
     * Returns an array of routes as JSON, filtered according to the
     * flags passed to the command
     */
    serializeRoutes(): Record<string, SerializedRoute[]>;
    run(): Promise<void>;
}
