import type { Resolver } from "../hook/event.js";
import type { Handler as HookHandler } from "../hook/hook.js";
export type Handler<E> = (event: E) => unknown;
export declare class Route<T extends Resolver> {
    excludedMiddlewares: Set<string> | null;
    Action: Handler<T>;
    Method: string;
    Path: string;
    Middlewares: Array<HookHandler<T>>;
    constructor(method: string, path: string, action: Handler<T>);
    BindFunc(...middlewareFuncs: Array<(e: T) => unknown>): this;
    Bind(...middlewares: Array<HookHandler<T>>): this;
    Unbind(...middlewareIds: string[]): this;
    bindFunc(...middlewareFuncs: Array<(e: T) => unknown>): this;
    bind(...middlewares: Array<HookHandler<T>>): this;
    unbind(...middlewareIds: string[]): this;
}
