import { Express } from 'express';
import { errorGuardMiddleware } from '../guards/exception.mjs';
import { Plugin } from './plugins.mjs';
export { CacheConfig, CacheEntry, CircutBreakerConfig, CircuteBreakerEntryState, PluginContext, RetryConfig, TimeoutConfig } from './plugins.mjs';
export { ExpressMethod, PartialExpressMethodRecord, RouteConfig, RouteDefinitionContext, RouteEndpoint, RouteEndpoints, RouteEntryConfig, RouteErrorHandler, RouteErrorMap, RouteGroupConfig, RouteGroupContext, RouteGroupEntryConfig, RouteGroupMiddleware, RouteHandlersMap, RouteMappingOptions, RouteMiddleware, RoutePlugins } from './routing.mjs';
export { InvalidPluginError, InvalidRouteHandler, RoutesRootNotFound, TimeoutError, UnknownPluginError } from './exceptions.mjs';
import './common.mjs';

type FileBasedRoutingOptions = {
    app: Express;
    target?: string;
    errorGuard?: boolean | typeof errorGuardMiddleware;
    plugins?: Plugin[];
    collectEndpoints?: boolean;
};

export { type FileBasedRoutingOptions, Plugin };
