import { type NativeAstResolved, type NativeRegistry } from "../ast/native-loader.js"; import type { ProjectInfo, RouteInfo, SchemaModel } from "../types.js"; export interface NativeExtraction { routes: RouteInfo[]; schemas: SchemaModel[]; /** The registry used, for ownership checks during the merge. */ registry: NativeRegistry; } /** * Run every enabled plugin over the files it claims (by extension). Returns native * routes/schemas (already stamped `confidence: "native"` by the adapter) plus the * registry. Inert (empty) when native AST is disabled or no plugin is registered. */ export declare function detectNative(files: string[], project: ProjectInfo, resolved: NativeAstResolved): Promise; /** * Merge native routes with built-in routes. * - additive: union, native-preferred dedup on method:path. * - authoritative: for a file owned by a native plugin, native results replace * built-in results from that file; if the plugin was empty for an owned file * the built-in DID extract, built-in stands and a warning is recorded. */ export declare function mergeNativeRoutes(builtin: RouteInfo[], native: RouteInfo[], resolved: NativeAstResolved, registry: NativeRegistry): RouteInfo[]; /** Merge native + built-in schemas, native-preferred dedup by model name. */ export declare function mergeNativeSchemas(builtin: SchemaModel[], native: SchemaModel[]): SchemaModel[];