import type { ConversationManager } from './conversation.js';
import type { ConfigManager } from '../config/manager.js';
import type { ModelDefinition, ProviderRegistry } from '../providers/registry.js';
import type { SessionMemoryStore } from '@pellux/goodvibes-sdk/platform/core/session-memory';
import type { SessionLineageTracker } from '@pellux/goodvibes-sdk/platform/core/session-lineage';
import type { AgentManager } from '../tools/agent/index.js';
import type { WrfcController } from '../agents/wrfc-controller.js';
import type { ExecutionPlanManager } from '@pellux/goodvibes-sdk/platform/core/execution-plan';
import type { RuntimeEventBus } from '../runtime/events/index.js';
import type { HookEvent, HookResult } from '@pellux/goodvibes-sdk/platform/hooks/types';
type HookDispatcherLike = {
    fire(event: HookEvent): Promise<HookResult>;
};
type EmitterContextFactory = (turnId: string) => import('../runtime/emitters/index.js').EmitterContext;
type CatalogTier = 'free' | 'paid' | 'subscription';
export type PreflightDeps = {
    conversation: ConversationManager;
    requestRender: () => void;
    hookDispatcher: HookDispatcherLike | null;
    configManager: Pick<ConfigManager, 'get'>;
    providerRegistry: ProviderRegistry;
    sessionLineageTracker: Pick<SessionLineageTracker, 'getEntries' | 'getCompactionCount'>;
    sessionId: string;
    agentManager: Pick<AgentManager, 'list'>;
    wrfcController: Pick<WrfcController, 'listChains'>;
    planManager: Pick<ExecutionPlanManager, 'getActive'> | null;
    sessionMemoryStore: Pick<SessionMemoryStore, 'list'> | null;
    runtimeBus: RuntimeEventBus | null;
    emitterContext: EmitterContextFactory;
    isCompacting: boolean;
    setIsCompacting: (value: boolean) => void;
};
export declare function checkContextWindowPreflight(deps: PreflightDeps, turnId: string, model: ModelDefinition): Promise<'ok' | 'compacted' | 'error'>;
export declare function emitContextOverflowError(conversation: {
    addSystemMessage: (message: string) => void;
}, requestRender: () => void, _turnId: string, estimatedTokens: number, contextWindow: number, modelDisplayName: string, providerRegistry: Pick<ProviderRegistry, 'listModels' | 'getContextWindowForModel'>, tier?: CatalogTier): void;
export type PostTurnContextDeps = {
    conversation: ConversationManager;
    agentManager: Pick<AgentManager, 'list'>;
    wrfcController: Pick<WrfcController, 'listChains'>;
    planManager: Pick<ExecutionPlanManager, 'getActive'> | null;
    sessionMemoryStore: Pick<SessionMemoryStore, 'list'> | null;
    runtimeBus: RuntimeEventBus | null;
    emitterContext: EmitterContextFactory;
    hookDispatcher: HookDispatcherLike | null;
    configManager: Pick<ConfigManager, 'get'>;
    providerRegistry: ProviderRegistry;
    sessionLineageTracker: Pick<SessionLineageTracker, 'getEntries' | 'getCompactionCount'>;
    sessionId: string;
    requestRender: () => void;
    isCompacting: boolean;
    setIsCompacting: (value: boolean) => void;
    lastWarningBracket: number;
    setLastWarningBracket: (value: number) => void;
};
export declare function handlePostTurnContextMaintenance(deps: PostTurnContextDeps, turnId: string, totalTokens: number): Promise<void>;
export {};
//# sourceMappingURL=orchestrator-context-runtime.d.ts.map