import { Address, Hex } from "viem"; import { DaimoLinkAccount, DaimoLinkInviteCode, DaimoLinkNote, DaimoLinkNoteV2, DaimoLinkRequest, DaimoLinkRequestV2 } from "./daimoLink"; import { EAccount } from "./eAccount"; export type DaimoLinkStatus = DaimoAccountStatus | DaimoRequestStatus | DaimoRequestV2Status | DaimoNoteStatus | DaimoInviteCodeStatus; export declare function assertDaimoAccountStatus(status?: DaimoLinkStatus): DaimoAccountStatus; export declare function assertDaimoRequestV2Status(status?: DaimoLinkStatus): DaimoRequestV2Status; /** * Summarizes a link to any Ethereum account. */ export type DaimoAccountStatus = { link: DaimoLinkAccount; account: EAccount; inviter?: EAccount; }; /** * Tracks details about a request for payment. * All of this information can be looked up onchain given `link`. */ export type DaimoRequestStatus = { link: DaimoLinkRequest; recipient: EAccount; requestId?: `${bigint}`; fulfilledBy?: EAccount; isValidInvite?: boolean; }; /** * Pending means the request hasn't yet been created onchain. * Created means it's been created and is waiting to be fulfilled. * Cancelled means cancelled by the original sender, and fulfilled means * fulfilled by anyone. */ export declare enum DaimoRequestState { Pending = "pending", Created = "created", Fulfilled = "fulfilled", Cancelled = "cancelled", Declined = "declined" } /** * Tracks details about a request for payment. * All of this information (except declines) can be looked up onchain given `link`. */ export type DaimoRequestV2Status = { link: DaimoLinkRequestV2; recipient: EAccount; creator?: EAccount; status: DaimoRequestState; metadata: Hex; createdAt: number; fulfilledBy?: EAccount; isValidInvite?: boolean; expectedFulfiller?: EAccount; updatedAt?: number; memo?: string; }; /** * Pending means the note hasn't yet been created onchain. Confirmed means * it's been created and is waiting to be claimed. Cancelled means claimed * back by the original sender, and claimed means claimed by anyone else. */ export declare enum DaimoNoteState { Pending = "pending", Confirmed = "confirmed", Claimed = "claimed", Cancelled = "cancelled" } /** * Tracks details about a Note. * All of this information can be looked up onchain given `link`. */ export type DaimoNoteStatus = { link: DaimoLinkNote | DaimoLinkNoteV2; status: DaimoNoteState; sender: EAccount; id?: string; contractAddress: Address; ephemeralOwner?: Address; claimer?: EAccount; dollars: `${number}`; memo?: string; }; /** * Tracks details about an invite. * This information is tracked offchain by the API server. */ export type DaimoInviteCodeStatus = { link: DaimoLinkInviteCode; createdAt: number; isValid: boolean; usesLeft?: number; bonusDollarsInvitee?: number; bonusDollarsInviter?: number; inviter?: EAccount; };