import type { AgentModelRequirements } from '../../book-2.0/agent-source/AgentModelRequirements';
import type { ParsedCommitment } from '../_base/ParsedCommitment';
/**
 * `USE` commitment types whose system-message sections are aggregated after the
 * commitment-by-commitment application step.
 *
 * @private internal utility of `createAgentModelRequirementsWithCommitments`
 */
type AggregatedUseCommitmentType = 'USE BROWSER' | 'USE DEEPSEARCH' | 'USE SEARCH ENGINE' | 'USE TIME';
/**
 * Adds the placeholder for an aggregated `USE` system-message section only once, preserving the section position from the first occurrence.
 *
 * @param requirements - Current model requirements.
 * @param type - Aggregated `USE` commitment type being applied.
 * @returns Requirements with the placeholder inserted when it was not already present.
 *
 * @private internal utility of `USE` commitments
 */
export declare function appendAggregatedUseCommitmentPlaceholder(requirements: AgentModelRequirements, type: AggregatedUseCommitmentType): AgentModelRequirements;
/**
 * Replaces temporary `USE` placeholders with one aggregated system-message block per commitment type.
 *
 * Distinct additional-instruction blocks are merged in stable source order while the hard-coded section is emitted only once.
 *
 * @param requirements - Model requirements produced by commitment-by-commitment application.
 * @param commitments - Filtered commitments in their original source order.
 * @returns Requirements with aggregated `USE` system-message sections.
 *
 * @private internal utility of `createAgentModelRequirementsWithCommitments`
 */
export declare function aggregateUseCommitmentSystemMessages(requirements: AgentModelRequirements, commitments: ReadonlyArray<ParsedCommitment>): AgentModelRequirements;
export {};
