import { SignJWT, JWSHeaderParameters } from 'jose'; import { Instantiable, InstantiableConfig } from '../../Instantiable.abstract'; import { Account } from '../Account'; import { Bytes, ethers } from 'ethers'; import { Babysig } from '../../models'; export declare class EthSignJWT extends SignJWT { protectedHeader: JWSHeaderParameters; setProtectedHeader(protectedHeader: JWSHeaderParameters): this; ethSign(signer: ethers.Signer): Promise; static signText(text: string | Bytes, signer: ethers.Signer): Promise; private base64url; private concat; } export declare class JwtUtils extends Instantiable { CLIENT_ASSERTION_TYPE: string; BASE_AUD: string; tokenCache: Map; constructor(config: InstantiableConfig); generateCacheKey(...args: string[]): string; accountToJwk(account: Account): Promise; generateClientAssertion(account: Account): Promise; generateAccessGrantToken(account: Account, serviceAgreementId: string, did: string, buyer?: string, babysig?: Babysig): Promise; generateToken(account: Account, serviceAgreementId: string, did: string, aud: string, obj: any): Promise; generateDownloadGrantToken(account: Account, did: string, buyer?: string, babysig?: Babysig): Promise; getDownloadGrantToken(did: string, account: Account, buyer?: string, babysig?: Babysig): Promise; generateExecuteGrantToken(account: Account, serviceAgreementId: string, workflowId: string): Promise; generateComputeGrantToken(account: Account, serviceAgreementId: string, executionId: string): Promise; generateNftAccessGrantToken(agreementId: string, did: string, account: Account, buyer?: string, babysig?: Babysig): Promise; getNftAccessGrantToken(agreementId: string, did: string, account: Account, buyer?: string, babysig?: Babysig): Promise; }