import { Middleware } from "./types/express.cjs"; import { Middleware as Middleware$1 } from "./types/h3.cjs"; import { Route } from "./Route.cjs"; import { ApiResourceMiddleware, HttpMethod, ResourceAction, ResourceRouteDefinition, ResourceRouteRegistrar, ResourceRouteRemover, ResourceRoutesOptions } from "./types/basic.cjs"; import { ResourceRouteSelection } from "./ResourceRouteSelection.cjs"; //#region src/ResourceRoutes.d.ts /** * @class clear-router ResourceRoutes * @description A ResourceRoutes creates a collection of resourceful routes in a single call * @author 3m1n3nc3 * @repository https://github.com/arkstack-hq/clear-router */ declare class ResourceRoutes { readonly basePath: string; readonly controller: any; readonly paramName: string; protected readonly registerRoute: ResourceRouteRegistrar; protected readonly removeRoute: ResourceRouteRemover; static actions: { readonly index: { readonly method: "get"; readonly path: "/"; }; readonly show: { readonly method: "get"; readonly path: "/:{param}"; }; readonly create: { readonly method: "post"; readonly path: "/"; }; readonly update: { readonly method: "put"; readonly path: "/:{param}"; }; readonly destroy: { readonly method: "delete"; readonly path: "/:{param}"; }; }; readonly routes: Partial>>; protected options: ResourceRoutesOptions; protected chainedMiddlewares: Array; constructor(basePath: string, controller: any, paramName: string, options: ResourceRoutesOptions | undefined, registerRoute: ResourceRouteRegistrar, removeRoute: ResourceRouteRemover); register(): this; /** * Only register routes for the provided actions. * * @param action * @param actions * @returns */ only(action: ResourceAction | ResourceAction[], ...actions: ResourceAction[]): this; /** * Register all resource routes except the provided actions. * * @param action * @param actions * @returns */ except(action: ResourceAction | ResourceAction[], ...actions: ResourceAction[]): this; /** * Register one or more middleware that will be executed before the route. * * @param middlewares * @param remember * @returns */ middleware(middlewares: M[] | M, remember?: boolean): this; action(action: ResourceAction): Route | undefined; index(): Route | undefined; show(): Route | undefined; create(): Route | undefined; update(): Route | undefined; destroy(): Route | undefined; get(): ResourceRouteSelection; post(): ResourceRouteSelection; put(): ResourceRouteSelection; delete(): ResourceRouteSelection; protected selectedActions(): ResourceAction[]; protected definitionFor(action: ResourceAction): ResourceRouteDefinition; protected resolveActionMiddlewares(action: ResourceAction): M[] | undefined; protected isActionMiddlewareMap(middlewares: ApiResourceMiddleware | undefined): middlewares is { [K in ResourceAction]?: M | M[] }; protected nameFor(path: string): string; protected byMethod(method: HttpMethod): ResourceRouteSelection; protected clear(): void; } //#endregion export { ResourceRoutes };