/**
 * Plan Mode — automatic complexity detection and structured planning.
 *
 * When a user message is complex (multi-step, multi-file, refactoring, etc.),
 * Symi auto-enters plan mode: read-only investigation → structured plan →
 * user approval → context-cleared execution.
 */
/**
 * Score a user message for complexity.
 * Returns a numeric score; >= PLAN_MODE_THRESHOLD triggers plan mode.
 */
export declare function scorePlanComplexity(prompt: string): number;
export declare const PLAN_MODE_THRESHOLD = 10;
/**
 * Determine whether a prompt should trigger plan mode.
 *
 * Priority:
 * 1. /plan prefix → always
 * 2. /noplan prefix → never
 * 3. Subagent/cron sessions → never
 * 4. Heuristic scoring
 */
export declare function shouldEnterPlanMode(prompt: string, opts?: {
    isSubagent?: boolean;
    isCron?: boolean;
    threshold?: number;
}): {
    enter: boolean;
    reason: string;
    score: number;
    stripped?: string;
};
export declare const PLAN_MODE_SYSTEM_PROMPT = "<plan_mode>\nYou have entered PLAN MODE because this task is complex.\n\nRULES:\n- DO NOT write, edit, or create any files yet\n- DO NOT execute destructive commands (rm, mv, git reset, etc.)\n- DO read files, search code, check runtime state\n- DO use memory_search, web_search, exec (read-only commands like ls, cat, git status, git log)\n- Produce a detailed step-by-step implementation plan\n\nOUTPUT FORMAT:\n1. **Summary** \u2014 what needs to be done and why\n2. **Investigation** \u2014 files read, code searched, state checked\n3. **Files to modify** \u2014 list every file that will be created, edited, or deleted\n4. **Implementation phases** \u2014 numbered steps with:\n   - What changes in each phase\n   - Which files are touched\n   - Dependencies on prior phases\n5. **Risks & considerations** \u2014 things that could go wrong, edge cases, rollback strategy\n\nAfter presenting the plan, ask the user to choose one of these options.\nPresent these as inline buttons if the channel supports them:\n- **Proceed** \u2014 clear context and execute the plan\n- **Modify** \u2014 adjust the plan based on feedback\n- **Cancel** \u2014 abandon the plan\n\nUse the message tool with buttons:\n[{\"label\": \"\u2705 Proceed\", \"data\": \"/plan-proceed\"}, {\"label\": \"\u270F\uFE0F Modify\", \"data\": \"/plan-modify\"}, {\"label\": \"\u274C Cancel\", \"data\": \"/plan-cancel\"}]\n</plan_mode>";
