/** * @license * Copyright 2025 Vybestack LLC * SPDX-License-Identifier: Apache-2.0 */ import { type PolicyEngineConfig, type PolicyRule, type ApprovalMode, type PolicySettings } from './types.js'; import { ApprovalMode as ApprovalModeEnum } from '../config/config.js'; import type { PolicyEngine } from './policy-engine.js'; import { type PolicyFileError } from './toml-loader.js'; import { type MessageBus } from '../confirmation-bus/message-bus.js'; export declare const DEFAULT_CORE_POLICIES_DIR: string; export declare const DEFAULT_POLICY_TIER = 1; export declare const USER_POLICY_TIER = 2; export declare const ADMIN_POLICY_TIER = 3; /** * Gets the list of directories to search for policy files, in order of increasing priority * (Default -> User -> Admin). * * @param defaultPoliciesDir Optional path to a directory containing default policies. */ export declare function getPolicyDirectories(defaultPoliciesDir?: string): string[]; /** * Determines the policy tier (1=default, 2=user, 3=admin) for a given directory. * This is used by the TOML loader to assign priority bands. */ export declare function getPolicyTier(dir: string, defaultPoliciesDir?: string): number; /** * Formats a policy file error for console logging. */ export declare function formatPolicyError(error: PolicyFileError): string; /** * Interface for config sources used by migrateLegacyApprovalMode. * This allows decoupling from the full Config class for testing. */ export interface PolicyConfigSource { getApprovalMode: () => ApprovalModeEnum; getAllowedTools: () => string[] | undefined; getNonInteractive: () => boolean; getUserPolicyPath?: () => string | undefined; } /** * Migrates legacy approval mode settings to policy rules. * * This function handles: * - ApprovalMode.YOLO → wildcard allow-all rule at priority 1.999 * - ApprovalMode.AUTO_EDIT → allow rules for write tools at priority 1.015 * - --allowed-tools flag → allow rules at priority 2.3 * * @param config Source of configuration values * @returns Array of PolicyRule objects for the legacy settings */ export declare function migrateLegacyApprovalMode(config: PolicyConfigSource): PolicyRule[]; export declare function createPolicyEngineConfig(config: PolicyConfigSource): Promise; export declare function createPolicyEngineConfig(settings: PolicySettings, approvalMode: ApprovalMode, defaultPoliciesDir?: string): Promise; export declare function createPolicyUpdater(policyEngine: PolicyEngine, messageBus: MessageBus): void;