/**
 * Why `name` cannot be a caller tool's name or alias — or `undefined` when it can. Two clauses, in this order:
 *  - the name must be one a rule can name ({@link isNameableToolName}; a value that is not a string is none): a tool mounted
 *    under a name no list can write could be neither granted nor refused by name;
 *  - `__` is reserved for the protocol namespaces: a caller name carrying it is read as a peer's tool everywhere names are
 *    parsed (routing, policy, telemetry), and an alias carrying it would sit inside a peer's prefix domain (a refresh would
 *    classify or clear it as remote, and a remote tool minted under the same name would shadow the local one).
 */
export declare function callerToolNameProblem(name: string): string | undefined;
