export type PermissionTier = 'strict' | 'approve' | 'trusted'; export declare const PERMISSION_TIERS: readonly PermissionTier[]; export type PermissionSource = 'agent_trust' | 'harness' | 'default' | 'invalid_trust'; export interface EffectivePermissionPolicy { tier: PermissionTier; source: PermissionSource; trust: PermissionTier | null; harnessMode: string | null; harnessTier: PermissionTier; harnessOverridden: boolean; invalidTrustDigest: string | null; } export declare function harnessModeTier(harnessMode?: string | null): PermissionTier; export declare function normalizeTrust(trust?: string | null): PermissionTier | null; export declare function resolveEffectivePermissionPolicy(input: { trust?: string | null; harnessMode?: string | null; }): EffectivePermissionPolicy; export declare function defaultPermissionPolicy(): EffectivePermissionPolicy; export declare function permissionPolicyOrDefault(policy?: EffectivePermissionPolicy | null, harnessMode?: string | null): EffectivePermissionPolicy; export type PermissionTierSupport = 'native' | 'approximated' | 'unsupported'; export interface PermissionCapabilities { native_approvals: boolean; tiers: Readonly>; } export declare const NATIVE_APPROVAL_PERMISSION_CAPABILITIES: PermissionCapabilities; export declare const TIER_FLAG_PERMISSION_CAPABILITIES: PermissionCapabilities; export declare const BYPASS_ONLY_PERMISSION_CAPABILITIES: PermissionCapabilities; export declare function describePermissionPolicy(policy: EffectivePermissionPolicy): string; export declare function describePermissionSupport(cliType: string, policy: EffectivePermissionPolicy, capabilities: PermissionCapabilities): string | null; export interface ApproveDispatchDecision { blocked: boolean; reason?: string; detail?: string; } export declare const APPROVE_BLOCKER_REASON = "approve_requires_approval_bridge"; export declare function decideApproveDispatch(policy: EffectivePermissionPolicy, runtime: { id: string; native_approvals: boolean; }): ApproveDispatchDecision;