import * as sol from "@solana/web3.js"; import * as anchor from "@coral-xyz/anchor"; import OmniService from "../bridge.js"; import { PendingDeposit, WithdrawArgs } from "../types.js"; import { ReviewFee } from "../fee.js"; export declare class SolanaOmniService { readonly omni: OmniService; connection: sol.Connection; programId: sol.PublicKey; constructor(omni: OmniService, options: { rpc?: string[] | sol.Connection; programId?: string; }); findContractStateAddress(): [sol.PublicKey, number]; findDepositAddress(nonce: bigint, sender: sol.PublicKey, receiver: Buffer, mint: sol.PublicKey, amount: bigint): [sol.PublicKey, number]; findUserAddress(receiver: sol.PublicKey): [sol.PublicKey, number]; getWithdrawFee(): Promise; getDepositFee(token: string): Promise; isWithdrawUsed(nonce: string, receiver: string): Promise; env(receiver: string): { program: anchor.Program; programId: sol.PublicKey; userAccount: sol.PublicKey; userBump: number; stateAccount: sol.PublicKey; stateBump: number; }; getLiquidity(token: string): Promise; getTokenBalance(token: string, address: string): Promise; getLastDepositNonce(sender: string): Promise; getLastWithdrawNonce(receiver: string): Promise; parseDeposit(hash: string): Promise; clearDepositNonceIfNeeded({ deposit, sender, sendTransaction }: { deposit: PendingDeposit; sender: string; sendTransaction: (tx: sol.TransactionInstruction[]) => Promise; }): Promise; deposit(args: { token: string; amount: bigint; sender: string; intentAccount: string; sendTransaction: (tx: sol.TransactionInstruction[]) => Promise; }): Promise; withdraw(args: WithdrawArgs & { sender: string; sendTransaction: (tx: sol.TransactionInstruction[]) => Promise; }): Promise; }