/**
 * Framework scaffolding catalog.
 *
 * Maps supported frameworks to their official create CLI commands
 * and the augmentation steps needed to integrate with Agentuity.
 *
 * AI examples and landing pages are provided as template overlay
 * directories under templates/<slug>/ that get copied on top of
 * the scaffolded project. This approach is more maintainable than
 * inline code snippets and produces complete, working files.
 */
import type { PackageManager } from '../build/detect/types.ts';
export interface FrameworkScaffold {
    /** Unique slug (matches detect/frameworks.ts where applicable) */
    slug: string;
    /** Human-readable name */
    name: string;
    /** Short description for the select prompt */
    description: string;
    /**
     * Build the create command.
     *
     * @param projectDir - The target directory name (relative, e.g. "my-app")
     * @param pm - The package manager the user chose. Frameworks should
     *   honor it where they have a flag for it (each tool spells the
     *   flag differently); if a framework has no `--package-manager`
     *   equivalent, render the bare command and let it pick the pm via
     *   lockfile-detection.
     * @returns The full command as an argv array (e.g. ["bunx", "create-next-app", "my-app", ...])
     */
    createCommand: (projectDir: string, pm: PackageManager) => string[];
    /**
     * Agentuity packages to add as dependencies after scaffolding.
     * `@agentuity/cli` is always added as a devDependency automatically.
     */
    dependencies?: string[];
    /**
     * Extra devDependencies to add (beyond @agentuity/cli).
     */
    devDependencies?: string[];
    /**
     * Scripts to merge into package.json.
     * These are merged on top of whatever the framework CLI created.
     */
    scripts?: Record<string, string>;
    /**
     * Template overlay directory name (relative to templates/).
     *
     * When set, the contents of templates/<overlayDir>/ are recursively
     * copied on top of the scaffolded project after the framework CLI runs.
     * Existing files are overwritten; new files are created.
     */
    overlayDir?: string;
}
/**
 * Apply a template overlay directory on top of a scaffolded project.
 */
export declare function applyOverlay(dest: string, overlayDir: string): void;
export declare const frameworkCatalog: FrameworkScaffold[];
/**
 * Find a framework scaffold by slug.
 */
export declare function getFrameworkBySlug(slug: string): FrameworkScaffold | undefined;
//# sourceMappingURL=frameworks.d.ts.map