import { type KaneBrowserConfig } from "./project-config.js";
import type { ChromeAvailabilityProbe, KaneCommandRunner, KaneReadiness, KaneRunRequest, KaneRunResult } from "./kane-cli-types.js";
export { parseKaneResult } from "./kane-cli-parser.js";
export { isChromeAvailable, runKaneCommand } from "./kane-cli-process.js";
export type { ChromeAvailabilityProbe, KaneCommandResult, KaneCommandRunner, KaneMutationLevel, KaneOutcome, KaneReadiness, KaneRunRequest, KaneRunResult, KaneTerminalEvent, } from "./kane-cli-types.js";
/** Kane CLI version covered by Lisa's adapter contract tests. */
export declare const SUPPORTED_KANE_VERSION = "0.6.3";
/** Provider config narrowed by Lisa's hard run gate. */
type AllowedKaneConfig = KaneBrowserConfig & {
    readonly enabled: true;
    readonly cloudUploadApproved: true;
    readonly version: typeof SUPPORTED_KANE_VERSION;
    readonly projectId: string;
};
/**
 * Merge committed and local Kane config using per-key local precedence.
 * @param projectRoot - Downstream project root
 * @returns Effective optional provider config
 */
export declare function readEffectiveKaneConfig(projectRoot: string): Promise<KaneBrowserConfig | undefined>;
/**
 * Assert that a request satisfies Lisa's hard Kane safety gate.
 * @param config - Effective provider config
 * @param request - Environment and mutation policy
 */
export declare function assertKaneRunAllowed(config: KaneBrowserConfig | undefined, request: Pick<KaneRunRequest, "environment" | "mutation">): asserts config is AllowedKaneConfig;
/**
 * Run one policy-approved Kane browser objective.
 * @param request - Objective and resolved Lisa policy context
 * @param runner - Injectable fixed-argv process runner
 * @returns Normalized provider result
 */
export declare function runKane(request: KaneRunRequest, runner?: KaneCommandRunner): Promise<KaneRunResult>;
/**
 * Run install, version, auth, target, and balance readiness probes.
 * @param projectRoot - Downstream project root
 * @param runner - Injectable process runner
 * @param chromeAvailable - Injectable host-browser probe
 * @returns Readiness status for doctor and setup
 */
export declare function probeKaneReadiness(projectRoot: string, runner?: KaneCommandRunner, chromeAvailable?: ChromeAvailabilityProbe): Promise<KaneReadiness>;
//# sourceMappingURL=kane-cli.d.ts.map