/**
 * Kernel Execution — contracts.
 *
 * KernelExecutionService is the public interface for anything that wants
 * to change the repo on behalf of a caller. CLI / MCP / orchestrator go
 * through this. Phantom/SubAgentRuntime implement the RuntimeBackend
 * interface; KernelExecutionService depends on RuntimeBackend, not on
 * any Phantom class directly (PR 3 contract).
 */
import type { RunMergeRequest, RunMergeResult, RunStepRequest, RunStepResult, RunVerifyRequest, RunVerifyResult } from './types.js';
import type { RuntimeExecuteInput, ExecutedStep } from '../runtime/types.js';
export interface KernelExecutionService {
    /** Run manual mutations inside an isolated git worktree. */
    step(input: RunStepRequest): Promise<RunStepResult>;
    /** Hash changed files + run registered verifiers. */
    verify(input: RunVerifyRequest): Promise<RunVerifyResult>;
    /** Fast-forward targetRef when verify is fresh. */
    merge(input: RunMergeRequest): Promise<RunMergeResult>;
    /** Delegate to the configured RuntimeBackend (Phantom by default). */
    execute(input: RuntimeExecuteInput): Promise<ExecutedStep>;
}
