import type { RoutingTier } from '../../models/config-types.js'; import type { ProviderActivityCallback, StreamCallback } from '../../../shared/types/provider.js'; export type { RoutingTier }; export declare const ROUTING_WORK_SNAPSHOT_LOCAL_IDENTITY: unique symbol; export interface RoutingWorkSnapshotLocalIdentity { readonly workDigest: string; readonly totalWorkCount: number; readonly omittedWorkCount: number; readonly sensitiveValues: readonly string[]; } export interface RoutingWorkSnapshot { readonly goal: string; readonly step: Readonly<{ name: string; tags: readonly string[]; personaKey?: string; instruction?: string; stepType: 'normal' | 'parallel' | 'agent'; edit?: boolean; }>; readonly remainingWork: ReadonlyArray>; readonly progress: Readonly<{ previousAttemptFailed: boolean; noProgress: boolean; retryingSameWork: boolean; }>; readonly [ROUTING_WORK_SNAPSHOT_LOCAL_IDENTITY]?: Readonly; } export type RoutingModelInput = Omit & { version: string; remainingWorkOmittedCount?: number; }; export interface WorkRequirementEstimate { requiredTier: RoutingTier; reasonCodes: string[]; confidence?: number; } export declare const ROUTING_REASON_CODE_VALUES: readonly ["api-change", "complex-work", "focused-change", "formatting", "initial-complexity", "local-change"]; export declare const MAX_ROUTING_REASON_CODES = 4; export declare const MAX_ROUTING_REASON_CODE_LENGTH = 32; export declare function validateRoutingReasonCodes(reasonCodes: unknown): asserts reasonCodes is string[]; export interface WorkRequirementEstimator { estimate(input: RoutingModelInput, options?: { abortSignal?: AbortSignal; onStream?: StreamCallback; onActivity?: ProviderActivityCallback; }): Promise; } //# sourceMappingURL=contracts.d.ts.map