import { type ExplorationUsage } from "@oscharko-dev/keiko-contracts/connected-context";
import type { ExplorationPlan } from "./plan.js";
export type GovernorStatus = "running" | "completed" | "budget-exhausted";
export interface GovernorState {
    readonly plan: ExplorationPlan;
    readonly usage: ExplorationUsage;
    readonly currentRingIndex: number;
    readonly status: GovernorStatus;
    readonly stopReason: string | undefined;
}
export declare function createGovernor(plan: ExplorationPlan): GovernorState;
export declare function applyUsage(state: GovernorState, delta: ExplorationUsage): GovernorState;
export declare function canContinue(state: GovernorState): boolean;
export declare function advanceRing(state: GovernorState): GovernorState;
export declare function complete(state: GovernorState): GovernorState;
//# sourceMappingURL=governor.d.ts.map