import type { MastraDBMessage } from '@mastra/core/agent';
import { ObservationStrategy } from './base.js';
import type { StrategyDeps } from './base.js';
import type { ObservationRunOpts, ObserverOutput, ProcessedObservation } from './types.js';
export declare class SyncObservationStrategy extends ObservationStrategy {
    private readonly startedAt;
    private readonly lastMessage;
    private cycleId?;
    private tokensToObserve;
    private observerResult;
    constructor(deps: StrategyDeps, opts: ObservationRunOpts);
    get needsLock(): boolean;
    get needsReflection(): boolean;
    get rethrowOnFailure(): boolean;
    prepare(): Promise<{
        messages: MastraDBMessage[];
        existingObservations: string;
    }>;
    emitStartMarkers(cycleId: string): Promise<void>;
    observe(existingObservations: string, messages: MastraDBMessage[]): Promise<{
        observations: string;
        currentTask?: string;
        suggestedContinuation?: string;
        threadTitle?: string;
        usage?: {
            inputTokens?: number;
            outputTokens?: number;
            totalTokens?: number;
        };
    }>;
    process(output: ObserverOutput, existingObservations: string): Promise<ProcessedObservation>;
    persist(processed: ProcessedObservation): Promise<void>;
    emitEndMarkers(cycleId: string, processed: ProcessedObservation): Promise<void>;
    emitFailedMarkers(cycleId: string, error: unknown): Promise<void>;
}
//# sourceMappingURL=sync.d.ts.map