/** Outcome of a single read-only `sonar` CLI probe. */
export interface SonarProbeResult {
    /** True when the command exited zero. */
    readonly ok: boolean;
}
/** Injectable fixed-argv `sonar` CLI runner. */
export type SonarCommandRunner = (args: readonly string[]) => Promise<SonarProbeResult>;
/** Readiness status for the optional Sonar provider. */
export interface SonarReadiness {
    readonly status: "ready" | "warn" | "fail" | "disabled";
    readonly detail: string;
}
/**
 * Run a fixed-argv read-only `sonar` command without a shell.
 * @param args - Fixed argument vector
 * @returns Whether the command exited zero
 */
export declare const runSonarCommand: SonarCommandRunner;
/**
 * Probe readiness of the official SonarQube MCP provider.
 *
 * Disabled (no `verification.sonar.enabled`) is healthy — the provider is
 * optional. When enabled, prove the `sonar` CLI is installed and authenticated
 * (`sonar auth status`, which honors either a login session or `SONARQUBE_CLI_TOKEN`).
 * @param projectRoot - Downstream project root
 * @param runner - Injectable process runner
 * @returns Readiness status for doctor and setup
 */
export declare function probeSonarReadiness(projectRoot: string, runner?: SonarCommandRunner): Promise<SonarReadiness>;
//# sourceMappingURL=sonar-integration.d.ts.map