/** * WindStack SDK * Created by Gilang Ramadan * Copyright (c) 2026 PT WIND KRIPTOGRAFI TEKNOLOGI * SPDX-License-Identifier: MIT */ import { type DappMetadataInput } from "@windstack/core"; import { type Session, type SessionStorage } from "@windstack/session"; import { type VexaniumAccount, type VexaniumClient, type VexaniumProvider } from "@windstack/vexanium"; import { type WispEmbeddedProviders, type WispEmbeddedProvidersOptions } from "./embedded.js"; import { type WispTelegramSession, type WispTelegramTransport, type WispTelegramTransportOptions } from "./WispTelegramTransport.js"; export type WispConnectorRoute = "provider" | "telegram"; export type WispConnectorTransport = "injected" | "embedded" | "telegram"; export type WispConnectorStatus = "idle" | "connecting" | "restoring" | "connected" | "disconnecting" | "error"; export type WispConnectorSnapshot = Readonly<{ status: WispConnectorStatus; transport: WispConnectorTransport | null; account: VexaniumAccount | null; sessionId: string | null; error: Error | null; }>; export type WispConnectorConnectOptions = { /** * Force one route. When omitted, Wisp provider discovery is preferred and * Telegram is used only when no Wisp provider is available. */ transport?: WispConnectorRoute; }; export type WispConnectorOptions = { appName?: string; dapp?: DappMetadataInput; /** Explicit Wisp Vexanium provider. Omit to use canonical RDNS discovery. */ provider?: VexaniumProvider; discoveryTimeoutMs?: number; rpcUrl?: string | readonly string[]; /** * Install the canonical embedded-provider bootstrap. When Vexanium is enabled, * the connector uses that exact frame provider instead of injected discovery. */ embedded?: WispEmbeddedProvidersOptions; /** Wisp Telegram configuration or an already-created transport. */ telegram?: WispTelegramTransportOptions | WispTelegramTransport; /** Session storage for provider-backed sessions. Browser localStorage is used when available. */ sessionStorage?: SessionStorage; sessionStorageKey?: string; }; export type WispConnector = Readonly<{ getSnapshot(): WispConnectorSnapshot; subscribe(listener: () => void): () => void; connect(options?: WispConnectorConnectOptions): Promise; restore(): Promise; disconnect(): Promise; getProviderClient(): Promise; getProviderSession(): Session | null; getTelegramSession(): WispTelegramSession | null; getEmbeddedProviders(): WispEmbeddedProviders | null; destroy(): void; }>; export declare function createWispConnector(options?: WispConnectorOptions): WispConnector; //# sourceMappingURL=connector.d.ts.map