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 '@pellux/goodvibes-sdk/platform/providers/cache-strategy';
import type { SessionLineageTracker } from '@pellux/goodvibes-sdk/platform/core/session-lineage';
import type { IdempotencyStore } from '@pellux/goodvibes-sdk/platform/runtime/idempotency/index';
import type { AdaptivePlanner } from '@pellux/goodvibes-sdk/platform/core/adaptive-planner';
import type { ExecutionPlanManager } from '@pellux/goodvibes-sdk/platform/core/execution-plan';
import type { SessionMemoryStore } from '@pellux/goodvibes-sdk/platform/core/session-memory';
import type { FavoritesStore } from '@pellux/goodvibes-sdk/platform/providers/favorites';
export type OrchestratorCoreServices = {
    configManager?: Pick<ConfigManager, 'get' | 'getCategory' | 'getWorkingDirectory'>;
    providerRegistry?: ProviderRegistry;
    cacheHitTracker?: Pick<CacheHitTracker, 'getMetrics'>;
    sessionLineageTracker?: SessionLineageTracker;
    idempotencyStore?: IdempotencyStore;
    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'>;
    favoritesStore?: Pick<FavoritesStore, 'recordUsage'>;
};
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