import { Reply } from "./Reply"; import { Request } from "./Request"; import { Response } from "./Response"; import { IActionResult } from "./Result"; import { IConfigurable } from "./Configuration"; export interface IFilterAction { (context: IActionFilterContext): void; } export interface IActionFilterContext { request: Request; response: Response; reply: Reply; next: () => void; result?: IActionResult; } export interface IActionFilter { before?(context: IActionFilterContext): void; after?(context: IActionFilterContext): void; } export declare class ActionFilter implements IActionFilter { private includeList; private excludeList; contains(action: string): boolean; only(...includes: string[]): ActionFilter; except(...excludes: string[]): ActionFilter; } export declare class Controller extends Reply implements IConfigurable { request: Request; response: Response; static filters: any[]; static model: any; constructor(request: Request, response: Response, send: (IActionResult) => void); static addBeforeFilter(action: IFilterAction): ActionFilter; static addAfterFilter(action: IFilterAction): ActionFilter; static addFilter(filterType: any): ActionFilter; configure(): void; } export declare class ModelController extends Controller { _model: any; constructor(request: Request, response: Response, send: (IActionResult) => void, _model: any); find(id?: string): void; create(): void; update(id: string): void; destroy(id: string): void; private static bindModel(model, request); }