import type { AgentModelRequirements } from '../../book-2.0/agent-source/AgentModelRequirements';
import { BaseCommitmentDefinition } from '../_base/BaseCommitmentDefinition';
/**
 * USE commitment definition
 *
 * The USE commitment indicates that the agent should utilize specific tools or capabilities
 * to access and interact with external systems when necessary.
 *
 * Supported USE types:
 * - USE BROWSER: Enables the agent to use a web browser tool
 * - USE SEARCH ENGINE (future): Enables search engine access
 * - USE FILE SYSTEM (future): Enables file system operations
 * - USE MCP (future): Enables MCP server connections
 *
 * The content following the USE commitment is ignored (similar to NOTE).
 *
 * Example usage in agent source:
 *
 * ```book
 * USE BROWSER
 * USE SEARCH ENGINE
 * ```
 *
 * @private [🪔] Maybe export the commitments through some package
 */
export declare class UseCommitmentDefinition extends BaseCommitmentDefinition<`USE${string}`> {
    constructor();
    /**
     * Short one-line description of USE commitments.
     */
    get description(): string;
    /**
     * Icon for this commitment.
     */
    get icon(): string;
    /**
     * Markdown documentation for USE commitment.
     */
    get documentation(): string;
    applyToAgentModelRequirements(requirements: AgentModelRequirements, content: string): AgentModelRequirements;
    /**
     * Extracts the tool type from the USE commitment
     * This is used by the parsing logic
     */
    extractToolType(content: string): string | null;
    /**
     * Checks if this is a known USE type
     */
    isKnownUseType(useType: string): boolean;
}
/**
 * Note: [💞] Ignore a discrepancy between file name and entity name
 */
