import type { Message } from "../types"; /** * Infer whether the current request to Copilot is user-initiated or agent-initiated. * Accepts `unknown[]` because providers may pass pre-converted message shapes. */ export type CopilotInitiator = "user" | "agent"; export type CopilotPremiumRequests = number; export type CopilotDynamicHeaders = { headers: Record; initiator: CopilotInitiator; premiumRequests: CopilotPremiumRequests; }; export declare function resolveGitHubCopilotBaseUrl(baseUrl: string | undefined, apiKey: string | undefined): string | undefined; export declare function inferCopilotInitiator(messages: unknown[]): CopilotInitiator; /** Check whether any message in the conversation contains image content. */ export declare function hasCopilotVisionInput(messages: Message[]): boolean; /** * Resolve an explicitly configured Copilot initiator header, if present. * Handles case-insensitive X-Initiator keys and returns the last valid value. */ export declare function getCopilotInitiatorOverride(headers: Record | undefined): CopilotInitiator | undefined; export type CopilotPlanTier = "free" | "paid"; export declare function getCopilotPremiumMultiplier(premiumMultiplier: number | undefined, planTier?: string): number; export declare function getCopilotPremiumRequests(params: { initiator: CopilotInitiator; premiumMultiplier?: number; planTier?: string; }): CopilotPremiumRequests; /** * Build dynamic Copilot headers that vary per-request. * Static headers (User-Agent, Editor-Version, etc.) come from model.headers. */ export declare function buildCopilotDynamicHeaders(params: { messages: unknown[]; hasImages: boolean; premiumMultiplier?: number; headers?: Record; initiatorOverride?: CopilotInitiator; planTier?: string; }): CopilotDynamicHeaders;