export type QualityGateName = "lint" | "typecheck" | "test" | "build";
export type PackageManager = "npm" | "pnpm" | "yarn" | "bun";
export type QualityGateStatus = "passed" | "failed" | "skipped" | "blocked" | "missing" | "timeout" | "error";
export type QualityGateFailureType = "exit-code" | "timeout" | "mcp-error" | null;
export interface QualityGateResult {
    command: string;
    exitCode: number;
    stdout: string;
    stderr: string;
    status: QualityGateStatus;
    failureType: QualityGateFailureType;
    logPath?: string;
}
export interface QualityGateResults {
    lint: QualityGateResult;
    typecheck: QualityGateResult;
    test: QualityGateResult;
    build: QualityGateResult;
}
interface ResolvedQualityCommand {
    command: string;
    executable?: PackageManager;
    args?: string[];
    skipped?: boolean;
    blocked?: boolean;
    missing?: boolean;
}
export declare function detectPackageManager(projectRoot: string): PackageManager;
export declare function resolvePackageManagerExecutable(pm: PackageManager): string;
export declare function readPackageScripts(projectRoot: string): Promise<Set<string> | undefined>;
export declare function getQualitySetting(config: string, key: QualityGateName): string;
export declare function resolveQualityCommand(setting: string, defaultScript: QualityGateName, detectedPackageManager: PackageManager, availableScripts?: Set<string>): ResolvedQualityCommand;
export declare function runQualityGate(projectRoot: string, config: string): Promise<QualityGateResults>;
export declare function printQualityGateResults(results: QualityGateResults, printMode?: boolean): string;
export declare function getQualityKeys(): QualityGateName[];
export {};
