import type { AutoModelPreference } from './copilot-identity.ts'; export declare const AUTO_MODEL_ATTRIBUTION_KEY = "github-copilot-auto-model-attribution"; type Dispose = () => void; export interface AutoModelAttribution { readonly provider: string; readonly model: string; readonly preference?: AutoModelPreference; readonly taskClass: 'fast' | 'balanced' | 'strong'; readonly reason: 'short-text-turn' | 'standard-turn' | 'large-structured-turn' | 'image-capability'; readonly candidateCount: number; readonly fittingCandidateCount?: number; readonly estimatedInputTokens?: number; readonly selectedInputBudget?: number; readonly inputFitDiagnostic?: 'fitting-candidate-selected' | 'compaction-eligible' | 'compaction-unavailable' | 'attempted-but-still-oversized' | 'fixed-content-cannot-fit'; } interface AttributionState { readonly turn: number; readonly value: AutoModelAttribution; } interface Match { readonly event: unknown; } interface Context { readonly state?: AttributionState; readonly matches: readonly Match[]; } interface LocationData { readonly kind: 'turn'; readonly turn: number; readonly key: typeof AUTO_MODEL_ATTRIBUTION_KEY; readonly value: AutoModelAttribution; } export declare const autoModelAttributionDefinition: { kind: string; match(event: unknown): { id: string; role: "start"; } | null; start(_context: Context, match: Match): AttributionState; update(context: Context & { readonly state: AttributionState; }): AttributionState; buildLocationData(context: Context, scope: string, previous: LocationData | null): LocationData | null; }; export declare function installAutoModelProjections(capabilities: { readonly uiConversation: unknown; readonly diagnostic: (code: string) => void; }): Dispose; export declare function installAutoModelPresentation(capabilities: { readonly slots: unknown; readonly uiConversation?: unknown; readonly diagnostic: (code: string) => void; readonly remote?: unknown; readonly locale?: unknown; }): Dispose; export {}; //# sourceMappingURL=auto-model-presentation.d.ts.map