/**
 * ToolsetRegistry — per-profile toolset allow/deny enforcement.
 *
 * Story 5.3 — OpenLife v1.3 Agent OS Integration.
 *
 * Reads the active Profile (via ProfileManager) and decides whether a
 * given toolset is in scope. Callers ask via `isAllowed(toolset)` before
 * dispatching tool use.
 *
 * Profile.toolsetAllowed:
 *   - ['*']  → all 15 categories allowed (backwards-compatible default)
 *   - ['file', 'web', 'memory']  → only these three allowed
 *   - []    → nothing allowed (locked-down profile)
 *
 * v1.3 also persists the registry's last decision per session for audit;
 * v1.4 will wire this to the executor sandbox.
 */
import { ProfileManager } from '../../cli/ProfileManager';
import { ToolsetCategory, ToolsetDecision } from './ToolsetSchema';
export interface ToolsetRegistryOptions {
    profileManager?: ProfileManager;
}
export declare class ToolsetRegistry {
    private readonly profileManager;
    constructor(opts?: ToolsetRegistryOptions);
    /** Return the set of toolsets allowed by the active profile, or all when no profile set. */
    allowedForActiveProfile(): Set<ToolsetCategory>;
    allowedForProfile(profileId: string): Set<ToolsetCategory>;
    private computeAllowed;
    isAllowed(toolset: ToolsetCategory, profileId?: string): ToolsetDecision;
    list(): readonly ToolsetCategory[];
}
