import { CanActivate, ExecutionContext } from '@nestjs/common';
import { Reflector } from '@nestjs/core';
/**
 * NestJS guard that automatically registers users in the RBAC system.
 * Uses the @RegisterUser decorator to determine user extraction logic.
 * Automatically assigns default role if configured and calls registration hooks.
 *
 * @example
 * ```typescript
 * // Apply to specific routes
 * @Post('signup')
 * @UseGuards(RegisterUserGuard)
 * @RegisterUser()
 * createUser(@Body() userData: CreateUserDto) { ... }
 *
 * // With custom user extraction
 * @Post('signup')
 * @UseGuards(RegisterUserGuard)
 * @RegisterUser({
 *   userExtractor: (body) => ({
 *     user_id: body.id,
 *     name: body.fullName,
 *     email: body.emailAddress
 *   })
 * })
 * createUser(@Body() userData: CreateUserDto) { ... }
 * ```
 */
export declare class RegisterUserGuard implements CanActivate {
    private reflector;
    constructor(reflector: Reflector);
    canActivate(context: ExecutionContext): Promise<boolean>;
}
