/**
 * Enterprise Managed Policies
 *
 * Reads organization-level policies from system paths to enforce
 * tool restrictions, command restrictions, cost limits, and model allowlists.
 *
 * Policy files:
 * - /etc/codebuddy/managed-settings.json (Linux system-wide)
 * - ~/.codebuddy/managed-settings.json (fallback for testing)
 */
export interface ManagedPoliciesConfig {
    allowManagedPermissionRulesOnly: boolean;
    allowManagedHooksOnly: boolean;
    disallowedTools: string[];
    disallowedCommands: string[];
    maxSessionCost?: number;
    allowedModels?: string[];
}
export declare class ManagedPoliciesManager {
    private policies;
    private managed;
    private systemPath;
    private userPath;
    constructor(systemPath?: string, userPath?: string);
    /**
     * Load policies from managed settings files.
     * System path takes priority over user path.
     */
    loadPolicies(): void;
    private tryLoadFrom;
    /**
     * Check if a tool is allowed by managed policies
     */
    isToolAllowed(toolName: string): boolean;
    /**
     * Check if a command is allowed by managed policies.
     * Checks if any disallowed command pattern appears in the command string.
     */
    isCommandAllowed(command: string): boolean;
    /**
     * Get the current policies
     */
    getPolicies(): ManagedPoliciesConfig;
    /**
     * Check if managed policies are active (file exists and was loaded)
     */
    isManaged(): boolean;
}
export declare function getManagedPoliciesManager(systemPath?: string, userPath?: string): ManagedPoliciesManager;
export declare function resetManagedPolicies(): void;
