import { RedisService } from "../../../../core/cache/redis/redis.service";
export interface OrgAuthSlice {
    permissions: string[];
    dataScopes: Array<{
        resource: string;
        scopeType: string;
    }>;
    roles: string[];
}
export interface CachedUserAuth {
    userId: string;
    systemRoles: OrgAuthSlice;
    orgRoles: Record<string, OrgAuthSlice>;
    defaultRegion?: string;
    email?: string;
    username?: string;
    regionPermissions?: Record<string, string[]>;
    regionRoles?: Record<string, string[]>;
    inboundDelegationScopes?: Array<{
        resource: string;
        scopeType: string;
    }>;
}
export declare class AuthCacheService {
    private readonly redis;
    private readonly logger;
    private readonly ttlSec;
    constructor(redis: RedisService);
    private key;
    get(userId: string): Promise<CachedUserAuth | null>;
    set(auth: CachedUserAuth): Promise<void>;
    invalidate(userId: string): Promise<void>;
    invalidateMany(userIds: string[]): Promise<void>;
}
