import * as express from 'express';

declare function stripExpressPathParamRegex(path: string): string;
declare function formatRegExpRoutePath(re: RegExp): string;
declare function getRouterInfo(app: express.Express | express.Router | any): {
    stack: any[] | null;
    version: "v4" | "v5";
};
declare function parseExpressPathRegExp(expressPathRegExp: RegExp, keys: any[]): string;
declare function parseExpressPath(expressPath: string, params: {
    [x: string]: string;
}): string;
declare function getEndpoints(app: any, basePath: any): {
    method: string;
    path: string;
}[];
type Route = {
    methods: Object;
    path: string | string[];
    stack: any[];
};
type Endpoint = {
    /**
     * Path name
     */
    path: string;
    /**
     * Methods handled
     */
    methods: string[];
    /**
     * Mounted middlewares
     */
    middlewares: string[];
};

export { type Endpoint, type Route, formatRegExpRoutePath, getEndpoints, getRouterInfo, parseExpressPath, parseExpressPathRegExp, stripExpressPathParamRegex };
