import { AuthenticateInterface, MultiTokenInterface, OffChainTokenConfig, OnChainTokenConfig } from '../interface'; import { Client } from '../index'; export interface AuthenticationResult { type: string; data: any; target: { address?: string; tokens?: []; }; } export interface AuthenticationMethod { TYPE: string; getTokenProof(issuerConfig: OnChainTokenConfig | OffChainTokenConfig, tokens: Array, request: AuthenticateInterface): Promise; } export interface AuthenticationMethodUN { TYPE: string; getTokenProof(request: AuthenticateInterface): Promise; } export interface MultiAuthenticateInterface { options?: any; } export interface AuthenticationMethodMulti { TYPE: string; getTokenProofMulti(tokenOrigin: string, tokens: { [issuerName: string]: MultiTokenInterface; }, options: MultiAuthenticateInterface): Promise; } export declare abstract class AbstractAuthentication { abstract TYPE: string; protected client: Client; constructor(client?: Client); saveProof(key: string, proof: AuthenticationResult): void; protected getSavedProof(key: string): AuthenticationResult; protected deleteProof(key: string): void; private getFullKey; private getProofs; }