import { type Account, type ContextualAlias, type DevicePermissionRequest, type Feature, type PushNotification, type RemotePermissionRequest, type RequestParams, type ResponseOk, type RingVrfProof, type SubscriptionPayload, type SubscriptionParams, type SigningPayloadRequest, type SigningRawRequest, type SigningResult } from "./api-protocol.js"; import type { RuntimeChainService } from "./runtime-chain-service.js"; import type { WalletSession } from "./wallet-session.js"; export interface ProductProtocolStorageAdapter { read(key: string): Uint8Array | null; write(key: string, value: Uint8Array): void; clear(key: string): void; } export interface ProductProtocolAccount { publicKey: Uint8Array; name: string; } export interface ProductProtocolBridgeHandle { destroy(): void; } export interface MountProductProtocolBridgeOptions { container: HTMLElement; productId: string; chainService: Pick, "routeChainByGenesisHash" | "sendRpc" | "startSubscription">; wallet?: Pick; resolveAccount?: () => ProductProtocolAccount | null; resolveAccountByProductId?: (productAccountId: RequestParams<"host_account_get", "v1">) => ProductProtocolAccount | null; resolveAccountAlias?: (productAccountId: RequestParams<"host_account_get_alias", "v1">) => ContextualAlias | Promise; createAccountProof?: (params: RequestParams<"host_account_create_proof", "v1">) => RingVrfProof | Promise; resolveNonProductAccounts?: () => Account[] | Promise; accountName?: string; storage?: ProductProtocolStorageAdapter; signPayload?: (payload: SigningPayloadRequest) => SigningResult | Promise; signRaw?: (payload: SigningRawRequest) => SigningResult | Promise; createTransaction?: (params: RequestParams<"host_create_transaction", "v1">) => ResponseOk<"host_create_transaction", "v1"> | Promise>; createTransactionWithNonProductAccount?: (payload: RequestParams<"host_create_transaction_with_non_product_account", "v1">) => ResponseOk<"host_create_transaction_with_non_product_account", "v1"> | Promise>; paymentBalanceSubscribe?: (send: (balance: SubscriptionPayload<"host_payment_balance_subscribe", "v1">) => void) => (() => void) | void; paymentTopUp?: (request: RequestParams<"host_payment_top_up", "v1">) => void | Promise; paymentRequest?: (request: RequestParams<"host_payment_request", "v1">) => ResponseOk<"host_payment_request", "v1"> | Promise>; paymentStatusSubscribe?: (receiptId: SubscriptionParams<"host_payment_status_subscribe", "v1">, send: (status: SubscriptionPayload<"host_payment_status_subscribe", "v1">) => void) => (() => void) | void; preimageLookup?: (key: SubscriptionParams<"remote_preimage_lookup_subscribe", "v1">) => SubscriptionPayload<"remote_preimage_lookup_subscribe", "v1"> | Promise>; preimageSubmit?: (value: RequestParams<"remote_preimage_submit", "v1">) => ResponseOk<"remote_preimage_submit", "v1"> | Promise>; onFeatureSupported?(feature: Feature): boolean | Promise; onDevicePermission?(permission: DevicePermissionRequest): boolean | Promise; onPermission?(request: RemotePermissionRequest): boolean | Promise; onPushNotification?(notification: PushNotification, productId: string): void | Promise; onNavigate?(url: string, productId: string): void; onLog?(message: string, productId: string): void; } export declare function createLocalStorageProductProtocolStorage(productId: string, storage?: Pick): ProductProtocolStorageAdapter; export declare function createProductProtocolChainProvider(chainService: Pick, "routeChainByGenesisHash" | "sendRpc" | "startSubscription">, chainName: ChainName, log?: (message: string) => void): (onMessage: (message: string) => void) => { send(payload: string): void; disconnect(): void; }; export declare function mountProductProtocolBridge(options: MountProductProtocolBridgeOptions): ProductProtocolBridgeHandle; //# sourceMappingURL=product-protocol.d.ts.map