/** @memberof module:@dwp/govuk-casa */
export default class MutableRouter {
    /**
     * A wrapping class to make Express routers mutable. You can append, prepend
     * and remove routes from a MutableRouter before finally "sealing" it and
     * mounting it on your Express app.
     *
     * @class
     * @param {import("express").RouterOptions} [options] Router options
     */
    constructor(options?: import("express").RouterOptions);
    /**
     * Seals this router to make it immutable. Returns the ExpressJS router.
     *
     * @returns {Router} ExpressJS Router
     */
    seal(): Router;
    /**
     * Prepend middleware function(s) using the `all()` method.
     *
     * @param {string | Function} path Route path or middleware function
     * @param {...Function} callbacks Additional middleware functions
     * @returns {void}
     */
    prependAll(path: string | Function, ...callbacks: Function[]): void;
    /**
     * Prepend middleware function(s) using the `get()` method.
     *
     * @param {string | Function} path Route path or middleware function
     * @param {...Function} callbacks Additional middleware functions
     * @returns {void}
     */
    prependGet(path: string | Function, ...callbacks: Function[]): void;
    /**
     * Prepend middleware function(s) using the `post()` method.
     *
     * @param {string | Function} path Route path or middleware function
     * @param {...Function} callbacks Additional middleware functions
     * @returns {void}
     */
    prependPost(path: string | Function, ...callbacks: Function[]): void;
    /**
     * Prepend middleware function(s) using the `delete()` method.
     *
     * @param {string | Function} path Route path or middleware function
     * @param {...Function} callbacks Additional middleware functions
     * @returns {void}
     */
    prependDelete(path: string | Function, ...callbacks: Function[]): void;
    /**
     * Prepend middleware function(s) using the `put()` method.
     *
     * @param {string | Function} path Route path or middleware function
     * @param {...Function} callbacks Additional middleware functions
     * @returns {void}
     */
    prependPut(path: string | Function, ...callbacks: Function[]): void;
    /**
     * Prepend middleware function(s) using the `use()` method.
     *
     * @param {string | Function} path Route path or middleware function
     * @param {...Function} callbacks Additional middleware functions
     * @returns {void}
     */
    prependUse(path: string | Function, ...callbacks: Function[]): void;
    /**
     * Replace middleware function(s) that were mounted using the `all()` method.
     *
     * @param {string | Function} path Route path or middleware function
     * @param {...Function} callbacks Additional middleware functions
     * @returns {void}
     */
    replaceAll(path: string | Function, ...callbacks: Function[]): void;
    /**
     * Replace middleware function(s) that were mounted using the `get()` method.
     *
     * @param {string | Function} path Route path or middleware function
     * @param {...Function} callbacks Additional middleware functions
     * @returns {void}
     */
    replaceGet(path: string | Function, ...callbacks: Function[]): void;
    /**
     * Replace middleware function(s) that were mounted using the `post()` method.
     *
     * @param {string | Function} path Route path or middleware function
     * @param {...Function} callbacks Additional middleware functions
     * @returns {void}
     */
    replacePost(path: string | Function, ...callbacks: Function[]): void;
    /**
     * Replace middleware function(s) that were mounted using the `delete()`
     * method.
     *
     * @param {string | Function} path Route path or middleware function
     * @param {...Function} callbacks Additional middleware functions
     * @returns {void}
     */
    replaceDelete(path: string | Function, ...callbacks: Function[]): void;
    /**
     * Replace middleware function(s) that were mounted using the `put()` method.
     *
     * @param {string | Function} path Route path or middleware function
     * @param {...Function} callbacks Additional middleware functions
     * @returns {void}
     */
    replacePut(path: string | Function, ...callbacks: Function[]): void;
    /**
     * Replace middleware function(s) that were mounted using the `use()` method.
     *
     * @param {string | Function} path Route path or middleware function
     * @param {...Function} callbacks Additional middleware functions
     * @returns {void}
     */
    replaceUse(path: string | Function, ...callbacks: Function[]): void;
    /**
     * Append middleware function(s) using the `all()` method.
     *
     * @param {string | Function} path Route path or middleware function
     * @param {...Function} callbacks Additional middleware functions
     * @returns {void}
     */
    all(path: string | Function, ...callbacks: Function[]): void;
    /**
     * Append middleware function(s) using the `get()` method.
     *
     * @param {string | Function} path Route path or middleware function
     * @param {...Function} callbacks Additional middleware functions
     * @returns {void}
     */
    get(path: string | Function, ...callbacks: Function[]): void;
    /**
     * Append middleware function(s) using the `post()` method.
     *
     * @param {string | Function} path Route path or middleware function
     * @param {...Function} callbacks Additional middleware functions
     * @returns {void}
     */
    post(path: string | Function, ...callbacks: Function[]): void;
    /**
     * Append middleware function(s) using the `delete()` method.
     *
     * @param {string | Function} path Route path or middleware function
     * @param {...Function} callbacks Additional middleware functions
     * @returns {void}
     */
    delete(path: string | Function, ...callbacks: Function[]): void;
    /**
     * Append middleware function(s) using the `put()` method.
     *
     * @param {string | Function} path Route path or middleware function
     * @param {...Function} callbacks Additional middleware functions
     * @returns {void}
     */
    put(path: string | Function, ...callbacks: Function[]): void;
    /**
     * Append middleware function(s) using the `use()` method.
     *
     * @param {string | Function} path Route path or middleware function
     * @param {...Function} callbacks Additional middleware functions
     * @returns {void}
     */
    use(path: string | Function, ...callbacks: Function[]): void;
    route(): void;
    #private;
}
import { Router } from "express";
