import type { PluginInput } from '@opencode-ai/plugin';
/**
 * Native Todo interface from OpenCode SDK
 */
export interface NativeTodo {
    id: string;
    content: string;
    status: 'pending' | 'in_progress' | 'completed' | 'cancelled';
    priority: 'high' | 'medium' | 'low';
}
interface MissionState {
    id: string;
    sessionID: string;
    prompt: string;
    status: 'active' | 'completed' | 'failed';
    iteration: number;
    maxIterations: number;
    startedAt: string;
    lastTodoHash?: string;
    stagnationCount: number;
}
/**
 * MissionController
 * Handles the main autonomous loop using OpenCode Native APIs.
 */
export declare class MissionController {
    private state;
    private client;
    constructor(input: PluginInput);
    /**
     * Starts a new mission by creating a session and sending the commander prompt.
     */
    start(prompt: string): Promise<string>;
    /**
     * Fetches native Todos for the current session.
     */
    getTodos(): Promise<NativeTodo[]>;
    /**
     * Moves to the next iteration if needed.
     * Called primarily when session becomes IDLE.
     */
    nextIteration(): Promise<{
        continue: boolean;
        prompt?: string;
        reason?: string;
    }>;
    buildCommanderPrompt(objective: string): string;
    buildContinuationPrompt(pending: NativeTodo[], intervention?: string): string;
    private buildStagnationIntervention;
    private hashTodos;
    getState(): MissionState | null;
}
export {};
