import type { LanguageModelChat } from 'vscode';
import { ServicesAccessor } from '../../../util/vs/platform/instantiation/common/instantiation';
import type { IChatEndpoint } from '../../networking/common/networking';
export declare function isHiddenModelA(model: LanguageModelChat | IChatEndpoint): boolean;
export declare function isHiddenModelB(model: LanguageModelChat | IChatEndpoint | string): boolean;
export declare function isHiddenModelE(model: LanguageModelChat | IChatEndpoint): boolean;
export declare function isHiddenModelF(model: LanguageModelChat | IChatEndpoint): boolean;
export declare function isHiddenModelG(model: LanguageModelChat | IChatEndpoint | string): boolean;
export declare function isHiddenFamilyH(model: LanguageModelChat | IChatEndpoint): boolean;
export declare function isHiddenModelK(model: LanguageModelChat | IChatEndpoint): boolean;
export declare function isGpt54(model: LanguageModelChat | IChatEndpoint | string): boolean;
export declare function isGpt55(model: LanguageModelChat | IChatEndpoint | string): boolean;
export declare function isGpt55EconomicalSearchAndEditExp(accessor: ServicesAccessor, model: LanguageModelChat | IChatEndpoint | string): boolean;
export declare function isGpt55LargePromptSectionsExp(accessor: ServicesAccessor, model: LanguageModelChat | IChatEndpoint | string): boolean;
export declare function isHiddenModelM(model: LanguageModelChat | IChatEndpoint | string): boolean;
export declare function isGpt53Codex(model: LanguageModelChat | IChatEndpoint | string): boolean;
export declare function isVSCModelA(model: LanguageModelChat | IChatEndpoint): boolean;
export declare function isVSCModelB(model: LanguageModelChat | IChatEndpoint): boolean;
export declare function isVSCModelReplaceStringSet(model: LanguageModelChat | IChatEndpoint): boolean;
export declare function isVSCModelC(model: LanguageModelChat | IChatEndpoint): boolean;
export declare function isVSCModelD(model: LanguageModelChat | IChatEndpoint): boolean;
export declare function isGpt52CodexFamily(model: LanguageModelChat | IChatEndpoint | string): boolean;
export declare function isGpt52Family(model: LanguageModelChat | IChatEndpoint | string): boolean;
/**
 * Returns whether the instructions should be given in a user message instead
 * of a system message when talking to the model.
 */
export declare function modelPrefersInstructionsInUserMessage(modelFamily: string): boolean;
/**
 * Returns whether the instructions should be presented after the history
 * for the given model.
 */
export declare function modelPrefersInstructionsAfterHistory(modelFamily: string): boolean;
/**
 * Model supports apply_patch as an edit tool.
 */
export declare function modelSupportsApplyPatch(model: LanguageModelChat | IChatEndpoint): boolean;
/**
 * Model prefers JSON notebook representation.
 */
export declare function modelPrefersJsonNotebookRepresentation(model: LanguageModelChat | IChatEndpoint): boolean;
/**
 * Model supports replace_string_in_file as an edit tool.
 */
export declare function modelSupportsReplaceString(model: LanguageModelChat | IChatEndpoint): boolean;
/**
 * Model supports multi_replace_string_in_file as an edit tool.
 */
export declare function modelSupportsMultiReplaceString(model: LanguageModelChat | IChatEndpoint): boolean;
/**
 * The model is capable of using replace_string_in_file exclusively,
 * without needing insert_edit_into_file.
 */
export declare function modelCanUseReplaceStringExclusively(model: LanguageModelChat | IChatEndpoint): boolean;
/**
 * We should attempt to automatically heal incorrect edits the model may emit.
 * @note whether this is respected is currently controlled via EXP
 */
export declare function modelShouldUseReplaceStringHealing(model: LanguageModelChat | IChatEndpoint): boolean;
/**
 * The model can accept image urls as the `image_url` parameter in mcp tool results.
 */
export declare function modelCanUseMcpResultImageURL(model: LanguageModelChat | IChatEndpoint): boolean;
/**
 * The model can accept image urls as the `image_url` parameter in requests.
 */
export declare function modelCanUseImageURL(model: LanguageModelChat | IChatEndpoint): boolean;
/**
 * The model supports native PDF document processing via document content parts.
 */
export declare function modelSupportsPDFDocuments(model: LanguageModelChat | IChatEndpoint): boolean;
/**
 * The model is capable of using apply_patch as an edit tool exclusively,
 * without needing insert_edit_into_file.
 */
export declare function modelCanUseApplyPatchExclusively(model: LanguageModelChat | IChatEndpoint): boolean;
/**
 * Whether, when replace_string and insert_edit tools are both available,
 * verbiage should be added in the system prompt directing the model to prefer
 * replace_string.
 */
export declare function modelNeedsStrongReplaceStringHint(model: LanguageModelChat | IChatEndpoint): boolean;
/**
 * Model can take the simple, modern apply_patch instructions.
 */
export declare function modelSupportsSimplifiedApplyPatchInstructions(model: LanguageModelChat | IChatEndpoint): boolean;
export declare function isAnthropicFamily(model: LanguageModelChat | IChatEndpoint): boolean;
export declare function isGeminiFamily(model: LanguageModelChat | IChatEndpoint | string): boolean;
export declare function isMinimaxFamily(model: LanguageModelChat | IChatEndpoint): boolean;
export declare function isGpt5PlusFamily(model: LanguageModelChat | IChatEndpoint | string | undefined): boolean;
/**
 * Matches gpt-5-codex, gpt-5.1-codex, gpt-5.1-codex-mini, and any future models in this general family
 */
export declare function isGptCodexFamily(model: LanguageModelChat | IChatEndpoint | string | undefined): boolean;
/**
 * GPT-5, -mini, -codex, not 5.1+
 */
export declare function isGpt5Family(model: LanguageModelChat | IChatEndpoint | string | undefined): boolean;
export declare function isGptFamily(model: LanguageModelChat | IChatEndpoint | string | undefined): boolean;
/**
 * Any GPT-5.1+ model
 */
export declare function isGpt51Family(model: LanguageModelChat | IChatEndpoint | string | undefined): boolean;
/**
 * This takes a sync shortcut and should only be called when a model hash would have already been computed while rendering the prompt.
 */
export declare function getVerbosityForModelSync(model: IChatEndpoint): 'low' | 'medium' | 'high' | undefined;
/**
 * Tool search is supported by:
 * - Claude Sonnet 4.5 (claude-sonnet-4-5-* or claude-sonnet-4.5-*)
 * - Claude Sonnet 4.6 (claude-sonnet-4-6-* or claude-sonnet-4.6-*)
 * - Claude Opus 4.5 (claude-opus-4-5-* or claude-opus-4.5-*)
 * - Claude Opus 4.6 (claude-opus-4-6-* or claude-opus-4.6-*)
 * - Claude Opus 4.7 (claude-opus-4-7-* or claude-opus-4.7-*)
 * - OpenAI gpt-5.4 and gpt-5.5 (via Responses API client-side tool search)
 */
export declare function modelSupportsToolSearch(modelId: string): boolean;
/**
 * Context editing is supported by:
 * - Claude Haiku 4.5 (claude-haiku-4-5-* or claude-haiku-4.5-*)
 * - Claude Sonnet 4.6 (claude-sonnet-4-6-* or claude-sonnet-4.6-*)
 * - Claude Sonnet 4.5 (claude-sonnet-4-5-* or claude-sonnet-4.5-*)
 * - Claude Sonnet 4 (claude-sonnet-4-*)
 * - Claude Opus 4.6 (claude-opus-4-6-* or claude-opus-4.6-*)
 * - Claude Opus 4.5 (claude-opus-4-5-* or claude-opus-4.5-*)
 * - Claude Opus 4.1 (claude-opus-4-1-* or claude-opus-4.1-*)
 * - Claude Opus 4 (claude-opus-4-*)
 * Provider-agnostic: add additional model prefixes here as other providers adopt context editing.
 */
export declare function modelSupportsContextEditing(modelId: string): boolean;
//# sourceMappingURL=chatModelCapabilities.d.ts.map