/**
 * Route Migration Utility
 *
 * Detects projects using file-based routing (multiple route files in src/api/)
 * and offers to migrate them to explicit routing — a single src/api/index.ts
 * root router that imports and mounts all sub-routers explicitly.
 *
 * Also updates src/app.ts to import the router and pass it to
 * createApp({ router }), completing the migration to explicit routing.
 *
 * Explicit routing will become the default in the next major release.
 *
 * Runs during `dev` and `build` after dependency upgrades.
 */
import type { Logger } from '../types';
export declare function detectFileBasedRoutes(rootDir: string): string[];
export interface MigrationCheckResult {
    /** Whether migration is available for this project */
    available: boolean;
    /** Route files found in src/api/ */
    routeFiles: string[];
    /** Whether the user has already been notified */
    alreadyNotified: boolean;
}
/**
 * Check if a project is eligible for migration to explicit routing.
 * Returns info about the project's routing state without performing any action.
 *
 * A project is eligible when:
 * - createApp() does NOT already have a `router` property
 * - It has multiple route files in src/api/
 * - It does NOT already have an explicit src/api/index.ts root router
 */
export declare function checkMigrationEligibility(rootDir: string): MigrationCheckResult;
export interface MigrationResult {
    success: boolean;
    filesCreated: string[];
    filesModified: string[];
    message: string;
}
/**
 * Perform the migration to explicit routing.
 *
 * 1. Generates/updates `src/api/index.ts` to import and mount all route files
 * 2. Updates `src/app.ts` to import the router and pass it to `createApp({ router })`
 *
 * Existing route files are NOT modified — they already export routers.
 */
export declare function performMigration(rootDir: string, routeFiles: string[]): MigrationResult;
/**
 * Show the migration notice and optionally perform migration.
 *
 * Called during `dev` and `build` after dependency upgrades.
 * Shows an informational banner with instructions — never blocks on
 * interactive prompts (which would hang agents and CI pipelines).
 *
 * @returns true if migration was performed, false otherwise
 */
export declare function promptRouteMigration(rootDir: string, _logger: Logger, options?: {
    interactive?: boolean;
}): Promise<boolean>;
//# sourceMappingURL=route-migration.d.ts.map