import { CanActivate, ExecutionContext } from '@nestjs/common';
import { Enforcer } from 'casbin';
import { type ReflectableDecorator } from '@nestjs/core';
import { type Subject, type Action } from '../decorators/action.decorator';
import type { CasbinPermissionChecker } from '../typings/casbin-permission';
export declare class CasbinGuard implements CanActivate {
    private readonly cookieMode;
    private readonly enforcer;
    private readonly accessTokenSecret;
    private readonly enableGlobalGuard;
    private readonly permissionDecorator;
    private readonly permissionChecker;
    private readonly accessTokenCookieName;
    constructor(cookieMode: boolean, enforcer: Enforcer | null, accessTokenSecret: string, enableGlobalGuard: boolean, permissionDecorator: ReflectableDecorator<[Subject, Action][]>, permissionChecker: CasbinPermissionChecker, accessTokenCookieName: string);
    canActivate(context: ExecutionContext & {
        enforcer: Enforcer;
        payload: {
            id: string;
            domain?: string;
        };
    }): Promise<boolean>;
}
