import { IEntity, tokenTypes, AuthHeaderType, IValidateTokenOptions, IEntityWithRoles, TEntityWithRoles } from '../types'; export declare abstract class TokenResolver { protected allowedTokenTypes: tokenTypes[]; private readonly type; constructor(allowedTokenTypes: tokenTypes[], type: AuthHeaderType); abstract validateToken(token: string, publicKey: string, options?: IValidateTokenOptions): Promise>; protected verifyToken(token: string, publicKey: string): Promise; validateTokenType(tokenType: tokenTypes): void; validateRolesAndPermissions({ roles: entityRoles, permissions: entityPermissions }: IEntityWithRoles, options: Pick): Promise; protected abstract getEntity(entity: T): Promise; shouldHandle(type: AuthHeaderType): boolean; private verifyAsync; }