/**
 * skillTarget — the ONE spelling of "which skill is this check about" (9.11.0).
 *
 * Pattern: a named convention with a single owner, so the producer (the agent's
 *          dispatch loop and its `read_skill` menu) and the consumers (any
 *          `PermissionChecker`, `PermissionPolicy` first among them) cannot
 *          drift about what a `PermissionRequest.target` means.
 * Role:    shared by `agentfootprint/security` and the tool-dispatch stage.
 * Emits:   N/A.
 *
 * ── Why a prefix at all ──────────────────────────────────────────────────────
 * A permission target is a plain string, and until 9.11.0 every one of them was
 * a TOOL NAME. A skill id is a different kind of subject: an agent may perfectly
 * well have a tool called `refunds` and a skill called `refunds`, and a role
 * allowlist that lists `'refunds'` must not accidentally grant both. The prefix
 * makes the two different subjects, which is what they are.
 *
 * It is deliberately not a second field on the request: a checker that has never
 * heard of skills should read `target` and see something it does not recognise,
 * rather than see a familiar-looking name and answer the wrong question.
 */
/** The prefix every skill-activation target carries. */
export declare const SKILL_TARGET_PREFIX = "skill:";
/** The `PermissionRequest.target` for activating skill `id`. */
export declare function skillTarget(id: string): string;
/**
 * The skill id inside a target, for a checker that wants the bare id.
 *
 * Tolerates a bare id (returns it unchanged) so a policy written against either
 * spelling behaves the same — the prefix is a disambiguator, not a password.
 */
export declare function skillIdFromTarget(target: string): string;
