/**
 * OwlCoda Native EnterPlanMode Tool
 *
 * Switches the conversation to read-only planning mode.
 * In plan mode the model explores the codebase and designs an approach
 * without writing or editing files.
 *
 * Upstream parity notes:
 * - Upstream EnterPlanModeTool sets toolPermissionContext.mode = 'plan'
 * - Blocks file mutations during plan phase
 * - Cannot be used in agent (sub-agent) contexts
 */
import type { EnterPlanModeInput, NativeToolDef } from './types.js';
import { type OperatingModeState } from '../modes.js';
/** Shared mutable plan-mode state. */
export interface PlanModeState {
    /** Whether the conversation is in plan mode. */
    inPlanMode: boolean;
    /** Stored plan text (written by ExitPlanMode). */
    planText?: string;
}
export interface SharedOperatingModeDeps {
    getOperatingModeState?: () => OperatingModeState | null | undefined;
    ensureOperatingModeState?: () => OperatingModeState | null | undefined;
}
export declare function createEnterPlanModeTool(state: PlanModeState, deps?: SharedOperatingModeDeps): NativeToolDef<EnterPlanModeInput>;
export declare function ensureConversationOperatingModeState(target: {
    options?: {
        operatingModeState?: OperatingModeState;
    };
}): OperatingModeState;
