import type { ConfigManager } from '../config/manager.js';
import type { ProviderRegistry } from '../providers/registry.js';
import type { ContentPart, LLMProvider } from '../providers/interface.js';
import type { CacheHitTracker } from '../providers/cache-strategy.js';
import type { SessionLineageTracker } from './session-lineage.js';
import type { IdempotencyStore } from '../runtime/idempotency/index.js';
import type { AdaptivePlanner } from './adaptive-planner.js';
import type { ExecutionPlanManager } from './execution-plan.js';
import type { SessionMemoryStore } from './session-memory.js';
import type { FavoritesStore } from '../providers/favorites.js';
export type OrchestratorCoreServices = {
    configManager?: Pick<ConfigManager, 'get' | 'getCategory' | 'getWorkingDirectory'> | undefined;
    providerRegistry?: ProviderRegistry | undefined;
    cacheHitTracker?: Pick<CacheHitTracker, 'getMetrics'> | undefined;
    sessionLineageTracker?: SessionLineageTracker | undefined;
    idempotencyStore?: IdempotencyStore | undefined;
    planManager?: Pick<ExecutionPlanManager, 'getActive' | 'getSummary' | 'getNextItems' | 'toMarkdown' | 'create' | 'save' | 'parseFromMarkdown' | 'replaceItems' | 'load' | 'updateItem'>;
    adaptivePlanner?: Pick<AdaptivePlanner, 'select' | 'getMode' | 'setMode' | 'explain' | 'override' | 'clearOverride' | 'getOverride' | 'getLatest'>;
    sessionMemoryStore?: Pick<SessionMemoryStore, 'list'> | undefined;
    favoritesStore?: Pick<FavoritesStore, 'recordUsage'> | undefined;
};
export declare function normalizeUsage(usage: Awaited<ReturnType<LLMProvider['chat']>>['usage']): Awaited<ReturnType<LLMProvider['chat']>>['usage'];
export declare function estimateFreshTurnInputTokens(lastInputTokens: number, currentEstimatedTokens: number, text: string, content?: ContentPart[]): number;
export declare function getSessionLineageTracker(services: OrchestratorCoreServices, ownedSessionLineageTracker: SessionLineageTracker): SessionLineageTracker;
export declare function getIdempotencyStore(services: OrchestratorCoreServices, ownedIdempotencyStore: IdempotencyStore): IdempotencyStore;
export declare function requireConfigManager(services: OrchestratorCoreServices): Pick<ConfigManager, 'get' | 'getCategory' | 'getWorkingDirectory'>;
export declare function requireProviderRegistry(services: OrchestratorCoreServices): ProviderRegistry;
export declare function getCacheHitTracker(services: OrchestratorCoreServices, ownedCacheHitTracker: Pick<CacheHitTracker, 'getMetrics'>): Pick<CacheHitTracker, 'getMetrics'>;
export declare function createEmitterContext(sessionId: string, turnId: string): import('../runtime/emitters/index.js').EmitterContext;
//# sourceMappingURL=orchestrator-runtime.d.ts.map