export declare const TURN_USAGE_EVIDENCE_KEY = "github-copilot-turn-usage-evidence"; export interface TimeoutUsageDetail { readonly step?: number; readonly seq?: number; readonly recovered: boolean; } export interface TurnUsageEvidence { readonly ended: boolean; readonly hasStart: boolean; readonly localPreDispatchBlocks: number; readonly unreportedAttempts: number; readonly requestBodyTimeouts?: number; readonly timeoutDetails?: readonly TimeoutUsageDetail[]; } interface PendingRetry { readonly index: number; readonly step: number; readonly seq: number; readonly phase: 'failed' | 'scheduled' | 'started'; readonly retryId?: string; readonly retry?: number; } interface State { readonly turn: number; readonly value: TurnUsageEvidence; readonly pending?: PendingRetry; } interface Match { readonly event: unknown; } interface Context { readonly state?: State; readonly matches: readonly Match[]; } interface LocationData { readonly kind: 'turn'; readonly turn: number; readonly key: typeof TURN_USAGE_EVIDENCE_KEY; readonly value: TurnUsageEvidence; } export declare function isTurnUsageEvidence(value: unknown): value is TurnUsageEvidence; export interface TurnUsageDiagnostic { readonly localPreDispatchBlocks: number; readonly unreportedAttempts: number; readonly incompleteHistory: boolean; readonly requestBodyTimeouts?: number; readonly timeoutDetails?: readonly TimeoutUsageDetail[]; } /** Native completed-tail evidence gates the notice; native totals are never replaced. */ export declare function turnUsageDiagnostic(turn: number, tail: unknown, evidence: unknown, copilot: boolean): TurnUsageDiagnostic | undefined; /** Bounded diagnostic evidence, not a competing usage total or billing projection. */ export declare const turnUsageEvidenceDefinition: { kind: string; stateVersion: number; match(event: unknown): { id: string; role: "start" | "update"; } | null; start(_context: Context, match: Match): State; update(context: Context & { readonly state: State; }, match: Match): State; buildLocationData(context: Context, scope: string, previous: LocationData | null): LocationData | null; }; export {}; //# sourceMappingURL=turn-usage-evidence.d.ts.map