import type { FabricPrewalkMode } from "../config.js"; import type { FabricCallAudit } from "../core/action-registry.js"; import { type FabricThinking } from "../thinking.js"; import type { PrewalkPlan } from "./plan.js"; export declare const MAX_PREWALK_PLAN_PROMPTS = 2; export interface FabricPrewalkArm { mode: FabricPrewalkMode; model: string; sessionId: string; armedAt: number; alwaysRearm: boolean; task?: string; thinking?: FabricThinking; } interface FabricPrewalkContinuation extends FabricPrewalkArm { continuationId: string; returnModel: string; accepted: boolean; } export type FabricPrewalkClaimedReadiness = "planned" | "disabled" | "unplanned"; export type FabricPrewalkStatus = { state: "idle"; } | ({ state: "armed"; } & FabricPrewalkArm) | ({ state: "handing_off"; } & FabricPrewalkArm & { claimedReadiness: FabricPrewalkClaimedReadiness; }) | ({ state: "continuation_pending"; } & FabricPrewalkContinuation & { claimedReadiness: FabricPrewalkClaimedReadiness; }); export type FabricPrewalkReadiness = { kind: "planned"; plan: PrewalkPlan; } | { kind: "disabled"; } | { kind: "unplanned"; prompts: number; }; export interface FabricPrewalkClaim { kind: "prewalk-claim"; arm: FabricPrewalkArm; mutation: FabricCallAudit; seq: number; readiness: FabricPrewalkReadiness; } export interface FabricPrewalkPlanCheckpoint { kind: "prewalk-plan"; arm: FabricPrewalkArm; mutation: FabricCallAudit; } export type FabricPrewalkClaimOutcome = FabricPrewalkClaim | FabricPrewalkPlanCheckpoint; export interface FabricPrewalkSettlement { continuationId: string; returnModel: string; executorModel: string; } export interface FabricPrewalkBorrowedMain { returnModel: string; executorModel: string; } export interface PrewalkContinuationMessage { role: "custom"; customType: string; content: string; display: boolean; details: Record; timestamp: number; } export declare class PrewalkController { #private; status(): FabricPrewalkStatus; arm(input: { model: string; mode?: FabricPrewalkMode; sessionId: string; task?: string; alwaysRearm?: boolean; requirePlan?: boolean; thinking?: FabricThinking; }): FabricPrewalkStatus; observeTask(sessionId: string, task: string): FabricPrewalkStatus; isArmed(sessionId?: string): boolean; planCheckpointRequired(sessionId?: string): boolean; planRequired(sessionId?: string): boolean; planReady(sessionId?: string): boolean; planState(sessionId?: string): { required: boolean; ready: boolean; prompts: number; }; submitPlan(sessionId: string, plan: PrewalkPlan): boolean; reopenPlanCheckpoint(): void; borrowMain(returnModel: string): boolean; beginContinuation(continuationId: string, returnModel: string, message?: PrewalkContinuationMessage): FabricPrewalkStatus; borrowedReturn(): FabricPrewalkBorrowedMain | undefined; clearBorrowed(): void; hydrateBorrowedMain(input: FabricPrewalkBorrowedMain): boolean; acceptContinuation(sessionId: string, continuationId: string): boolean; pendingContinuationMessage(sessionId: string): { continuationId: string; message: PrewalkContinuationMessage; } | undefined; takeContinuationSettlement(sessionId: string): FabricPrewalkSettlement | undefined; finishContinuation(sessionId: string, continuationId: string): boolean; failHandoff(): FabricPrewalkStatus; settleTask(sessionId: string): boolean; completeTask(): FabricPrewalkStatus; claim(audits: FabricCallAudit[], sessionId: string): FabricPrewalkClaimOutcome | undefined; claimFsDrift(sessionId: string, files: readonly string[]): FabricPrewalkClaimOutcome | undefined; cancel(): void; } export {}; //# sourceMappingURL=controller.d.ts.map