import { type PermissionValidationFn } from '../utils/auth-validator';
/**
 * Decorator to validate permissions before executing a method.
 *
 * Usage:
 * ```typescript
 * class MyController {
 *     protected readonly authValidator = new AuthValidator(authSession, authService);
 *
 *     @ValidatePermissions(v => v.someOf(['permission-1', 'permission-2']).allOf(['required-permission-1', 'required-permission-2']))
 *     foo() {
 *         return 'bar';
 *     }
 * }
 * ```
 *
 * The decorated method will only execute if the `authValidator` instance has a valid `authSession`.
 *
 * @param validate - A function to define permission validation logic using `PermissionValidator`.
 */
export declare function ValidatePermissions(validate: PermissionValidationFn): (target: any, propertyKey: string, descriptor: PropertyDescriptor) => PropertyDescriptor;
