export type ExtractedRoute = { /** Uppercase HTTP method, matching Elysia's runtime `route.method`. */ method: string; /** Path argument literal — including leading slash, no host. */ path: string; /** Verbatim source of the full `.method(...)` CallExpression. Used * downstream as a stand-in for the runtime handler so the existing * `isPageHandler` / `extractSitemapMetadata` substring checks work * unchanged against AST-discovered routes. */ handlerSource: string; }; /** Walk every TypeScript source file under `projectRoot` and return the * Elysia route registrations found. Skip-dirs (`node_modules`, `dist`, * `build`, framework build caches, dotfile dirs) are excluded. * * No path deduplication here on purpose: the same path (e.g. `/`) is * frequently registered by multiple plugins (one page route at the * root, several API sub-plugins under prefixes like `/v1/foo`). The * scanner has no way to know the prefix without tracing `.use()` / * `new Elysia({ prefix })`, but it doesn't need to — sitemap discovery * downstream filters by `isPageHandler` and then dedups by mount path, * so API duplicates are dropped naturally. */ export declare const scanRouteRegistrations: (projectRoot: string) => ExtractedRoute[];