/**
 * Discover phase
 * --------------
 *
 * Validates that the current directory looks like something we can deploy
 * and runs framework detection up front.
 *
 * Why up front, before we touch the cloud:
 *   - We can fail fast on "this is not a JS project" with a useful message,
 *     before creating a deployment, registering a project, or asking the
 *     user any questions.
 *   - The detection result feeds the build phase later, so we only run
 *     framework detection once per deploy.
 *   - Showing the user "Detected: Next.js v15 (Node)" early gives instant
 *     feedback that the CLI understood their project.
 *
 * Failure modes are user-actionable: missing package.json, missing build
 * script, etc. We deliberately do NOT call the generic adapter or run
 * `npm run build` here — that's the build phase's job.
 */
import type { Logger } from '@agentuity/core';
import { type Step, stepSkipped } from '../../../steps.ts';
import type { DiscoverResult } from './types.ts';
/**
 * Builds the "Detect Project" step.
 *
 * The step is async-friendly and mutates `state.discover` in place when it
 * succeeds, so subsequent steps in the same `runSteps()` call can read the
 * detection result. Returning it via mutation keeps the `Step` interface
 * (just `label` + `run`) unchanged.
 */
export declare function buildDiscoverStep(projectDir: string, logger: Logger, state: {
    discover?: DiscoverResult;
}): Step;
/**
 * Standalone discover used by paths that don't run inside `runSteps()`
 * (e.g. tests, or future entrypoints that want the result without the
 * step UI). Throws on the same failure modes as the step's `stepError`.
 */
export declare function runDiscover(projectDir: string, logger: Logger): Promise<DiscoverResult>;
export { stepSkipped };
//# sourceMappingURL=discover.d.ts.map