import type Container from "../../Container/Container"; import type { Request } from "../../Http/Request"; import type HttpResponse from "../../Http/Response"; import type { Class } from "../../Types"; import ViewFactory from "../../View/Factory"; import type { Handler as ExceptionHandler } from "../../Contracts/Exception/Handler"; declare type renderUsing = (e: E, req: Request) => HttpResponse | ViewFactory; declare type reportUsing = (e: E) => void; interface renderCallback { exception: Class; renderUsing: renderUsing; } interface reportCallback { exception: Class; reportUsing: reportUsing; } declare class Handler implements ExceptionHandler { protected container: Container; protected reportCallbacks: reportCallback[]; protected renderCallbacks: renderCallback[]; protected dontReport: Class[]; protected internalDontReport: Class[]; constructor(container: Container); render(req: Request, e: any): Promise; protected prepareException(e: any): any; report(e: any): void; reportable(exception: Class, reportUsing: reportUsing): void; renderable(exception: Class, renderUsing: renderUsing): void; protected register(): void; protected shouldntReport(e: Class): boolean; } export default Handler;