import type { Command } from "commander";
/** Injectable seams so the command is testable without provisioning anything. */
export interface EnvironmentDeps {
    /** Resolve the installed package root. */
    readonly installPath?: () => string;
    /** Run the script. */
    readonly run?: (command: string, args: string[]) => {
        status: number | null;
    };
    /** Report a problem. */
    readonly error?: (message: string) => void;
}
/**
 * Locate the runner inside the installed package.
 *
 * Resolved from the module's own location rather than the working directory:
 * this command's whole point is that it works without a checkout, so the cwd is
 * frequently not a project at all.
 * @param installPath Package root resolver.
 * @returns Absolute path to the runner.
 * @throws {Error} When the package is incomplete.
 */
export declare function resolveEnvironmentScript(installPath?: () => string): string;
/**
 * Run the environment runner with the given arguments.
 * @param args Surface and flags, forwarded verbatim.
 * @param deps Injectable seams.
 * @returns The runner's exit code.
 */
export declare function runEnvironment(args?: readonly string[], deps?: EnvironmentDeps): number;
/**
 * Register `lisa environment`.
 * @param program Commander program to mutate.
 * @param deps Program dependencies.
 * @param deps.runEnvironment Runs the runner and returns its exit code.
 */
export declare function addEnvironmentCommand(program: Command, deps?: {
    readonly runEnvironment: (args: readonly string[]) => number;
}): void;
//# sourceMappingURL=environment-cmd.d.ts.map