import type { WizardOptions } from '../../utils/types';
export type JavaScriptContext = {
    packageManagerName?: string;
    hasTypeScript?: boolean;
    hasBundler?: string;
    /** VitePress, VuePress, Slidev, etc. — Vue is present for tooling, not a product SPA */
    vuePoweredDocsSite?: boolean;
};
/**
 * Packages that indicate a specific framework integration exists.
 * If any of these are in package.json, we should NOT match as generic JavaScript.
 *
 * When adding a new JS framework integration to the wizard,
 * add its detection package here too.
 */
export declare const FRAMEWORK_PACKAGES: readonly ["next", "nuxt", "vue", "react-router", "@tanstack/react-start", "@tanstack/react-router", "react-native", "@angular/core", "astro", "@sveltejs/kit"];
/**
 * Detect the JS package manager for the project by checking lockfiles.
 *
 * Uses the lightweight detector to keep this file out of the cold-start
 * import graph for `setup-utils` / analytics — the framework `detect()`
 * path imports this module transitively.
 */
export declare function detectJsPackageManager(options: Pick<WizardOptions, 'installDir'>): Promise<string>;
/**
 * Detect the bundler used in the project by checking package.json dependencies.
 */
export declare function detectBundler(options: Pick<WizardOptions, 'installDir'>): string | undefined;
/**
 * Heuristic: check if there is an index.html anywhere in the project,
 * ignoring common build and dependency directories.
 */
export declare function hasIndexHtml(options: Pick<WizardOptions, 'installDir'>): boolean;
