import type { PayChannel } from "@/data/dto/payment"; import type { PendingChatUnlockKind, PendingChatUnlockStage, } from "@/data/storage/navigation"; export type AppSubscriptionType = "vip" | "topup"; export type AppSubscriptionReturnTo = "chat" | null; export interface OpenSubscriptionInput { type: AppSubscriptionType; payChannel?: PayChannel; returnTo?: AppSubscriptionReturnTo; replace?: boolean; } export interface StartMessageUnlockInput { messageId: string; kind: PendingChatUnlockKind; returnUrl: string; stage?: PendingChatUnlockStage; onAuthenticated: () => void; } export interface OpenSubscriptionForPendingUnlockInput { messageId: string; kind: PendingChatUnlockKind; returnUrl: string; type: AppSubscriptionType; payChannel?: PayChannel; }