import type { ComputeFramework } from "./types.ts"; export interface DetectComputeRepositoryInput { repositoryName: string; filePaths: Iterable; readFile: (path: string) => Promise; } /** Package manager detected for the repository root. */ export interface DetectedPackageManager { /** Package manager name. */ name: "npm" | "pnpm" | "yarn" | "bun"; /** * Lockfile found at the repository root. * null when the package manager was resolved from the packageManager field * alone and no lockfile was present. */ lockfile: string | null; } export interface DetectedComputeRepositoryApp { id: string; target: string; name: string; root: string; framework: ComputeFramework; frameworkName: string; httpPort: number; entry: string; build: { command: string | null; outputDirectory: string; entrypoint: string; }; inferredFrom: string[]; reviewRequired: boolean; /** * Prisma Next usage for this app. "Prisma" here means Prisma Next (Prisma 8+), * the engine-less, @prisma-next/-scoped client. Earlier Prisma clients * (@prisma/client, prisma-client-js) are not part of this system's vocabulary * and are not detected. */ prismaNext: { /** True when a Prisma Next config file or a @prisma-next/* package was found. */ detected: boolean; /** Signal that triggered detection, or empty when detected is false. */ inferredFrom: string[]; }; } export interface DetectComputeRepositoryResult { apps: DetectedComputeRepositoryApp[]; warnings: string[]; /** * Package manager detected from the repository root's packageManager field * and lockfile. null when neither signal is present. */ packageManager: DetectedPackageManager | null; } /** * Detects every deployable app in a remote repository snapshot, including * workspace discovery, root-app ownership, and inferred build settings. */ export declare function detectComputeRepository(input: DetectComputeRepositoryInput): Promise; //# sourceMappingURL=detect-repository.d.ts.map