import type { LanguageModelChat } from 'vscode';
import type { IChatEndpoint } from '../../networking/common/networking';
export declare function isHiddenModelA(model: LanguageModelChat | IChatEndpoint): Promise<boolean>;
export declare function isHiddenModelB(model: LanguageModelChat | IChatEndpoint): Promise<boolean>;
export declare function isVSCModel(model: LanguageModelChat | IChatEndpoint): Promise<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): Promise<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): Promise<boolean>;
/**
 * Model supports multi_replace_string_in_file as an edit tool.
 */
export declare function modelSupportsMultiReplaceString(model: LanguageModelChat | IChatEndpoint): Promise<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): Promise<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): Promise<boolean>;
/**
 * The model can accept image urls as the `image_url` parameter in requests.
 */
export declare function modelCanUseImageURL(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;
//# sourceMappingURL=chatModelCapabilities.d.ts.map