import { type ClassificationResult, type RoutingFeatures, type RoutingInstructionMode, type VirtualRouterContextRoutingConfig } from './types.js';
import { ProviderRegistry } from './provider-registry.js';
import type { RoutingInstructionState } from './routing-instructions.js';
import type { VirtualRouterHitEvent } from '../../telemetry/stats-center.js';
type LoggingDeps = {
    providerRegistry: ProviderRegistry;
    contextRouting: VirtualRouterContextRoutingConfig | undefined;
};
export type StopMessageRuntimeSummary = {
    hasAny: boolean;
    safeText?: string;
    mode: 'on' | 'off' | 'auto' | 'unset';
    maxRepeats: number;
    used: number;
    remaining: number;
    active: boolean;
    updatedAt?: number;
    lastUsedAt?: number;
};
export type VirtualRouterHitRecord = {
    timestampMs: number;
    requestId?: string;
    routeName: string;
    poolId?: string;
    providerKey: string;
    modelId?: string;
    hitReason?: string;
    stickyScope?: string;
    requestTokens?: number;
    selectionPenalty?: number;
    stopMessage: StopMessageRuntimeSummary;
};
export type VirtualRouterHitEventMeta = {
    requestId: string;
    entryEndpoint?: string;
};
export declare function createVirtualRouterHitRecord(input: {
    requestId?: string;
    routeName: string;
    poolId?: string;
    providerKey: string;
    modelId?: string;
    hitReason?: string;
    stickyScope?: string;
    routingState?: RoutingInstructionState;
    requestTokens?: number;
    selectionPenalty?: number;
    timestampMs?: number;
}): VirtualRouterHitRecord;
export declare function toVirtualRouterHitEvent(record: VirtualRouterHitRecord, meta: VirtualRouterHitEventMeta): VirtualRouterHitEvent;
export declare function formatStickyScope(scope?: string): string | undefined;
export declare function parseProviderKey(providerKey: string): {
    providerId: string;
    keyAlias?: string;
    modelId?: string;
} | null;
export declare function describeTargetProvider(providerKey: string, fallbackModelId?: string): {
    providerLabel: string;
    resolvedModel?: string;
};
export declare function buildHitReason(routeUsed: string, providerKey: string, classification: ClassificationResult, features: RoutingFeatures, mode: RoutingInstructionMode | undefined, deps: LoggingDeps): string;
export declare function formatVirtualRouterHit(record: VirtualRouterHitRecord): string;
export {};
