import { EventEmitter } from 'events';
export interface APIEndpoint {
    path: string;
    method: 'GET' | 'POST' | 'PUT' | 'DELETE' | 'PATCH';
    requiredPermissions: string[];
    description: string;
}
export interface PermissionCheckResult {
    endpoint: string;
    hasPermission: boolean;
    missingPermissions: string[];
    errorMessage?: string;
}
export declare class APIPermissionChecker extends EventEmitter {
    private endpoints;
    private userPermissions;
    constructor();
    /**
     * Register API endpoint with permission requirements
     */
    registerEndpoint(endpoint: APIEndpoint): void;
    /**
     * Set user permissions
     */
    setUserPermissions(permissions: string[]): void;
    /**
     * Check if user has permission for API call
     */
    checkPermission(method: string, path: string): PermissionCheckResult;
    /**
     * Validate multiple API calls
     */
    validateAPIAccess(calls: Array<{
        method: string;
        path: string;
    }>): PermissionCheckResult[];
    /**
     * Generate permission report
     */
    generatePermissionReport(): string;
    /**
     * Create permission middleware for express-like APIs
     */
    createMiddleware(): (req: Record<string, unknown>, res: Record<string, unknown>, next: () => void) => any;
    /**
     * Load common API endpoints and their permission requirements
     */
    private loadCommonEndpoints;
    /**
     * Create permission checker for orchestration agents
     */
    static createForOrchestration(userRole: string): APIPermissionChecker;
}
//# sourceMappingURL=apiPermissionChecker.d.ts.map