import { ForeignToken } from "@daimo/contract"; import { Address, Hex } from "viem"; import { BigIntStr, DollarStr } from "./model"; export declare const daimoDomainAddress = "https://daimo.com"; export declare const daimoLinkBaseV2 = "https://daimo.com/l"; export declare const daimoLinkBase = "https://daimo.com/link"; /** Represents a Daimo app deep-link */ export type DaimoLink = DaimoLinkAccount | DaimoLinkRequest | DaimoLinkRequestV2 | DaimoLinkNote | DaimoLinkNoteV2 | DaimoLinkSettings | DaimoLinkInviteCode | DaimoLinkTag | DaimoLinkDeposit; export declare function stripSeedFromNoteLink(link: V): V; /** Represents any Ethereum address */ export type DaimoLinkAccount = { type: "account"; /** eAccountStr, eg "bob", "vitalik.eth", "0x..." */ account: string; }; /** Represents a request for $x to be paid to y address. */ export type DaimoLinkRequest = { type: "request"; requestId?: BigIntStr; /** Requester eAccountStr */ recipient: string; dollars?: DollarStr; toCoin: ForeignToken; }; /** Represents a request for $x to be paid to y address. */ export type DaimoLinkRequestV2 = { type: "requestv2"; id: string; /** Requester eAccountStr */ recipient: string; dollars: DollarStr; memo?: string; }; /** Represents a Payment Link. Works like cash, redeemable onchain. */ export type DaimoLinkNote = { type: "note"; /** Sender eAccountStr. To verify, look up ephemeralOwner onchain */ previewSender: string; /** To verify, look up ephemeralOwner onchain */ previewDollars: DollarStr; /** The ephemeral (burner) public key associated with this claimable note. */ ephemeralOwner: Address; /** The ephemeral (burner) private key, from the hash portion of the URL. */ ephemeralPrivateKey?: Hex; }; export type DaimoLinkNoteV2 = { type: "notev2"; sender: string; dollars: DollarStr; id: string; seed?: string; }; export type DaimoLinkSettings = { type: "settings"; screen?: "add-device" | "add-passkey"; }; export type DaimoLinkInviteCode = { type: "invite"; code: string; }; export type DaimoLinkTag = { type: "tag"; id: string; }; export type DaimoLinkDeposit = { type: "deposit"; }; export declare function formatDaimoLink(link: DaimoLink): string; export declare function formatDaimoLinkDirect(link: DaimoLink): string; export declare function parseDaimoLink(link: string): DaimoLink | null; export declare function parseDaimoLinkType(link: string): string | null;