import type { PermissionCheckResult, PermissionContext } from '../types.js';

/**
 * 权限检查器基础接口
 * 所有工具的权限检查器都应该实现此接口
 */
export interface PermissionChecker {
  /**
   * 检查器名称
   */
  readonly name: string;

  /**
   * 检查权限
   * @param ctx 权限检查上下文
   * @returns 权限检查结果
   */
  check(ctx: PermissionContext): Promise<PermissionCheckResult>;

  /**
   * 清除会话级别的临时权限
   */
  clearSessionPermissions(): void;
}

/**
 * 权限检查器配置基类
 */
export interface BasePermissionConfig {
  /**
   * 默认权限动作
   */
  default: 'allow' | 'deny' | 'ask';
}
