import { type FrameworkBuildType } from "./frameworks.ts";
import type { ComputeFramework } from "./types.ts";
export interface ComputeAppManifest {
    name?: unknown;
    main?: unknown;
    packageManager?: unknown;
    workspaces?: unknown;
    scripts?: unknown;
    dependencies?: unknown;
    devDependencies?: unknown;
    peerDependencies?: unknown;
}
export interface DetectComputeAppInput {
    root: string;
    manifest: ComputeAppManifest;
    filePaths: Iterable<string>;
}
export interface DetectedComputeApp {
    framework: ComputeFramework;
    frameworkName: string;
    buildType: FrameworkBuildType;
    httpPort: number;
    entrypoint: string | null;
    evidence: {
        kind: "dependency" | "config" | "entrypoint";
        path: string;
        value: string;
    };
}
/**
 * Detects one deployable app from an in-memory repository snapshot.
 * Paths are repository-relative so remote consumers do not need a checkout.
 */
export declare function detectComputeApp(input: DetectComputeAppInput): DetectedComputeApp | null;
export declare function computeAppCandidateFilePaths(manifest: ComputeAppManifest): string[];
//# sourceMappingURL=detect-app.d.ts.map