import { TokenAuthenticated } from "../typechain-types"; import { BytesLike, Signer } from "ethers"; type Address = string; export interface TokenRequest { owner: string; device: string; issuedAt: number; } interface PreSignData { stringToSign: string; tokenRequest: TokenRequest; } export interface Token { signature: BytesLike; tokenRequest: TokenRequest; } interface TokenAuthenticatedContract { createTokenRequest: TokenAuthenticated["createTokenRequest"]; } export declare function bytesToSignForToken(contract: TokenAuthenticatedContract, owner: Address, device: Address): Promise; export declare function authenticateTokenRequest(statement: string, request: TokenRequest, signature: BytesLike): Promise; export declare const adjustV: (signature: string) => string; /** * createToken does not do any https calls out except for the sign message, this makes it useable for mobile browsers * as they will often pop the app store if there are any extraneous requests besides the direct call to wallet connect. * see: https://github.com/MetaMask/metamask-mobile/pull/4167 * @param preTokenData * @param owner * @returns a sequence of bytes */ export declare function createToken({ stringToSign, tokenRequest }: PreSignData, owner: Signer): Promise; export declare function getBytesAndCreateToken(contract: TokenAuthenticatedContract, owner: Signer, device: Address): Promise; export {};