import { PolicyDescriptor } from '../../core/policy';
import { TransformRouteT } from '../../core/controller';
import { Request, Response } from 'express';
export declare class EmptyController {
}
export declare class ControllerSansDecorator {
}
export declare class EmptyControllerChild {
}
export declare class EmptyControllerRoot {
}
export declare class SimpleController {
    a(req: Request, res: Response): Promise<void>;
    b(req: Request, res: Response): Promise<void>;
    c(req: Request, res: Response): Promise<void>;
}
export declare class SimpleChildController extends SimpleController {
    x(req: Request, res: Response): Promise<void>;
    y(req: Request, res: Response): Promise<void>;
    z(req: Request, res: Response): Promise<void>;
}
export declare class SimpleControllerRoot {
}
export declare class MultiRouteController {
    multi(req: Request, res: Response): Promise<void>;
}
export declare class PhishingController {
    someFakeFunction(...args: any[]): void;
    private anotherOne();
    masqueradingAsRoutes(name: string, age: number): void;
    withTheSameSignature(req: Request, res: Response): Promise<void>;
}
export declare class ComplexController {
    healthCheck(req: Request, res: Response): Promise<void>;
    transformRoutePathPart(routeFnName: string, part: string): string;
    transformRoutePath(routeFnName: string, path: string): string;
    transformRoutePolicies(routeFnName: string, fullPath: string, policies: PolicyDescriptor[]): PolicyDescriptor[];
    transformRoute(route: TransformRouteT): boolean | void;
}
export declare class SkipRouteController {
    healthCheck(req: Request, res: Response): Promise<void>;
    transformRoute(route: TransformRouteT): boolean | void;
}
export declare class KeepRouteController {
    healthCheck(req: Request, res: Response): Promise<void>;
    transformRoute(route: TransformRouteT): boolean | void;
}
export declare class AmbivalentController {
    healthCheck(req: Request, res: Response): Promise<void>;
    transformRoute(route: TransformRouteT): boolean | void;
}
