import { FastifyRequest, FastifyReply } from 'fastify';
export interface RBACContext {
    userId: string;
    roles: string[];
    permissions: string[];
}
export declare function checkPermission(userId: string, resource: string, action: string): Promise<boolean>;
export declare function getRBACContext(userId: string): Promise<RBACContext | null>;
export declare function requirePermission(resource: string, action: string): (request: FastifyRequest, reply: FastifyReply) => Promise<void>;
export declare function requireAnyPermission(permissions: Array<{
    resource: string;
    action: string;
}>): (request: FastifyRequest, reply: FastifyReply) => Promise<void>;
export declare function requireAllPermissions(permissions: Array<{
    resource: string;
    action: string;
}>): (request: FastifyRequest, reply: FastifyReply) => Promise<void>;
export declare function hasRole(userId: string, roleName: string): Promise<boolean>;
//# sourceMappingURL=rbac.d.ts.map