import { P as Plugin } from '../index-673af1e4.js'; import { ISolanaChain } from '@phantom/chain-interfaces'; type SendOptions = { skipPreflight?: boolean; preflightCommitment?: string; maxRetries?: number; minContextSlot?: number; }; type PublicKey = { toString: () => string; toBase58: () => string; }; type SolanaSignInData = { domain?: string; address?: string; statement?: string; uri?: string; version?: string; chainId?: string; nonce?: string; issuedAt?: string; expirationTime?: string; notBefore?: string; requestId?: string; resources?: string[]; }; type DisplayEncoding = "utf8" | "hex"; interface PhantomSolanaProvider { isPhantom: boolean; publicKey: PublicKey | null; isConnected: boolean; connect: (opts?: { onlyIfTrusted?: boolean; }) => Promise<{ publicKey: PublicKey; }>; disconnect: () => Promise; signMessage: (message: Uint8Array, display?: DisplayEncoding) => Promise<{ signature: Uint8Array; publicKey: PublicKey; }>; signIn: (signInData: SolanaSignInData) => Promise<{ address: PublicKey; signature: Uint8Array; signedMessage: Uint8Array; }>; signAndSendTransaction: (transaction: any, options?: SendOptions) => Promise<{ signature: string; publicKey?: string; }>; signAndSendAllTransactions: (transactions: any[], options?: SendOptions) => Promise<{ signatures: string[]; publicKey?: string; }>; signAllTransactions: (transactions: any[]) => Promise; signTransaction: (transaction: any) => Promise; on: (event: "connect" | "disconnect" | "accountChanged", handler: (publicKey?: PublicKey) => void) => void; off: (event: "connect" | "disconnect" | "accountChanged", handler: (publicKey?: PublicKey) => void) => void; } declare function createSolanaPlugin(): Plugin; declare module "../index" { interface Phantom { solana: ISolanaChain; } } export { PhantomSolanaProvider, SolanaSignInData, createSolanaPlugin };