import { BaseError } from '@zetapush/common'; /** * ================================ * Token Managers * ================================ */ export interface TokenGenerator { generate(): Promise; } export declare abstract class TokenGeneratorInjectable implements TokenGenerator { abstract generate(): Promise; } /** * Allows to store tokens */ export interface TokenRepository { store(token: Token, associatedValue?: AssociatedValueToToken): Promise; getFromToken(token: Token): Promise; delete(token: Token): Promise; } export declare abstract class TokenRepositoryInjectable implements TokenRepository { abstract store(token: Token, associatedValue?: AssociatedValueToToken): Promise; abstract getFromToken(token: Token): Promise; abstract delete(token: Token): Promise; } /** * Allows to validate or delete */ export interface TokenManager { validate(token: Token, matcher?: (associatedValue?: AssociatedValueToToken) => Promise): Promise; generate(): Promise; save(token: Token, associatedValue?: AssociatedValueToToken): Promise; } export declare abstract class TokenManagerInjectable implements TokenManager { abstract validate(token: Token, matcher?: (associatedValue?: AssociatedValueToToken) => Promise): Promise; abstract generate(): Promise; abstract save(token: Token, associatedValue?: AssociatedValueToToken): Promise; } /** * ================================ * Utils Type / Interfaces * ================================ */ export interface Token { value: string; } export interface StoredToken { token: Token; associatedValue?: AssociatedValueToToken; } export declare type AssociatedValueToToken = any; export declare class TokenGenerationError extends BaseError { }