import type { ToolHandler } from './spi/tool.js'; import type { Actor, ToolSpec } from './types.js'; /** * Is this tool part of this deployment right now? `ToolSpec.enabled` and the handler's * `isEnabled()` are ANDed — either one saying no is enough — and both default to yes. * * Resolved per turn rather than at registration, so the answer can come from configuration that * did not exist when the tool was registered. */ export declare function isToolEnabled(spec: ToolSpec, handler?: ToolHandler): Promise; /** * Drop tools this deployment has turned off, before anyone asks who may call them. A disabled tool * is absent, not forbidden — the difference matters, because "forbidden" tells the model (and the * user reading a refusal) that the capability exists. */ export declare function filterToolsByEnabled(entries: T[]): Promise; /** * May this actor use this tool, per the tool's OWN gate? Tools without a `canUse` say yes and are * governed by the `RolesPolicy` alone. */ export declare function canActorUseTool(actor: Actor, handler?: ToolHandler): Promise; /** * Drop tools whose own `canUse` refuses this actor. Runs after the app-wide `RolesPolicy`, and is * additive to it — a tool can narrow who reaches it, never widen. */ export declare function filterToolsByCanUse(entries: T[], actor: Actor): Promise; //# sourceMappingURL=tool-filters.d.ts.map