import type { ObservationTurn } from './turn.js';
import type { StepContext } from './types.js';
/**
 * Represents a single step in the agentic loop within an observation turn.
 *
 * Created via `turn.step(stepNumber)`. Call `prepare()` before the agent generates.
 * The previous step's output is finalized automatically when the next step is created
 * or when `turn.end()` is called.
 */
export declare class ObservationStep {
    private readonly turn;
    readonly stepNumber: number;
    private _prepared;
    private _context?;
    constructor(turn: ObservationTurn, stepNumber: number);
    /** Whether this step has been prepared. */
    get prepared(): boolean;
    /** Step context from prepare(). Throws if prepare() hasn't been called. */
    get context(): StepContext;
    /**
     * Prepare this step for agent generation.
     *
     * For step 0: activates buffered chunks, checks reflection, builds system message, filters observed.
     * For step > 0: checks thresholds, triggers buffer/observe, saves previous messages,
     * builds system message, filters observed.
     */
    prepare(): Promise<StepContext>;
    /**
     * Run the full threshold observation pipeline:
     * waitForBuffering → re-check → activate → reflect → blockAfter gate → observe
     */
    private runThresholdObservation;
}
//# sourceMappingURL=step.d.ts.map