import type { ToolRegistry } from '../tool-registry.js';
/** The role every A2A caller carries — what a tool names to be reachable by personal agents at all. */
export declare const PERSONAL_AGENT_ROLE = "personal_agent";
export declare const REQUEST_PERMISSION_TOOL = "request_permission";
/** The component the tool pushes into the stream; the A2A turn reads it back as a step-up. */
export declare const PERMISSION_COMPONENT = "a2a.permission";
/**
 * Register `request_permission`: the tool a personal agent's turn calls when what it was asked to do
 * needs a permission the user has not delegated. It pushes the requested scopes into the stream and
 * ENDS the turn; the A2A handler answers with a step-up task (PACT §5.5) carrying a consent link for
 * exactly those scopes. The conversation stays open — the agent re-sends once the user approves.
 *
 * Only personal agents reach it ({@link PERSONAL_AGENT_ROLE}), and only scopes the deployment
 * offers can be asked for.
 */
export declare function registerRequestPermissionTool(registry: ToolRegistry, scopes: Record<string, string>): void;
//# sourceMappingURL=permission-tool.d.ts.map