import type { PermissionMode, PermissionDecision, ToolPermissionContext, PermissionCallback, PermissionRule } from "../types/permission.js"; export interface PermissionManagerOptions { configuredPermissionMode?: PermissionMode; allowedRules?: string[]; deniedRules?: string[]; additionalDirectories?: string[]; workdir?: string; planFilePath?: string; } export declare class PermissionManager { private configuredPermissionMode?; private allowedRules; private deniedRules; private temporaryRules; private additionalDirectories; private workdir?; private planFilePath?; constructor(options?: PermissionManagerOptions); updateConfiguredPermissionMode(mode?: PermissionMode): void; getConfiguredPermissionMode(): PermissionMode | undefined; getAllowedRules(): string[]; getDeniedRules(): string[]; updateAllowedRules(rules: string[]): void; updateDeniedRules(rules: string[]): void; getTemporaryRules(): string[]; updateWorkdir(workdir?: string, additionalDirectories?: string[]): void; addTemporaryRules(rules: string[]): void; clearTemporaryRules(): void; updateAdditionalDirectories(directories: string[]): void; dispose(): void; isRestrictedTool(toolName: string): boolean; isToolDenied(toolName: string): boolean; resolveEffectivePermissionMode(cliPermissionMode?: PermissionMode): PermissionMode; getCurrentEffectiveMode(cliPermissionMode?: PermissionMode): PermissionMode; isPathInSafeZone(targetPath: string): boolean; private isInsideSafeZone; private matchesRule; private isAllowedByRule; private checkRuleset; checkPermission(context: ToolPermissionContext): Promise; private matchesDeniedRules; createContext(toolName: string, permissionMode: PermissionMode, callback?: PermissionCallback, toolInput?: Record, toolCallId?: string, planContent?: string): ToolPermissionContext; createRuleset(rules: string[], mode: "allow" | "deny"): PermissionRule[]; testRule(toolName: string, value: string, rulePattern: string): boolean; }