import { CanActivate, ExecutionContext } from '@nestjs/common';
import { Reflector } from '@nestjs/core';
import { AuthStrategyFactory } from '../strategy';
import { AuthMethod } from '../types';
/**
 * Decorator to specify which authentication method is supported for a route/controller.
 * @param method Authentication method
 *
 * @example
 * @UseAuth(AuthMethod.JWT)
 */
export declare function UseAuth(method: AuthMethod): MethodDecorator & ClassDecorator;
/**
 * This guard is strategy-agnostic and delegates authentication to registered strategies.
 * Use the @UseAuth() decorator on controllers/routes to specify supported strategies.
 */
export declare class AuthGuard implements CanActivate {
    private readonly _reflector;
    private readonly _strategyFactory;
    constructor(_reflector: Reflector, _strategyFactory: AuthStrategyFactory);
    canActivate(context: ExecutionContext): Promise<boolean>;
}
