import { NetworkType, AddressType } from '@unisat/wallet-types'; /** * Base enums and interface definitions */ declare enum TxType { SIGN_TX = 0, SEND_BITCOIN = 1, SEND_ORDINALS_INSCRIPTION = 2, SEND_ATOMICALS_INSCRIPTION = 3, SEND_RUNES = 4, SEND_ALKANES = 5 } interface ApiResponse { code: number; msg: string; data: T; } interface PaginationParams { cursor: number; size: number; } interface BaseUserToSignInput { index: number; sighashTypes: number[] | undefined; useTweakedSigner?: boolean; disableTweakSigner?: boolean; tapLeafHashToSign?: string; } interface AddressUserToSignInput extends BaseUserToSignInput { address: string; } interface PublicKeyUserToSignInput extends BaseUserToSignInput { publicKey: string; } type UserToSignInput = AddressUserToSignInput | PublicKeyUserToSignInput; interface ToSignInput { index: number; publicKey: string; sighashTypes?: number[] | undefined; tapLeafHashToSign?: Buffer; } interface ClientConfig { endpoint?: string; network?: NetworkType; timeout?: number; retries?: number; headers?: Record; apiKey?: string; userAgent?: string; } interface RequestConfig { timeout?: number; retries?: number; headers?: Record; } /** * Inscriptions related type definitions */ interface Inscription { inscriptionId: string; inscriptionNumber: number; address: string; outputValue: number; preview: string; content: string; contentType: string; contentLength: number; timestamp: number; genesisTransaction: string; location: string; output: string; offset: number; contentBody: string; utxoHeight: number; utxoConfirmation: number; brc20?: { op: string; tick: string; lim: string; amt: string; decimal: string; }; multipleNFT?: boolean; sameOffset?: boolean; children?: string[]; parents?: string[]; } interface InscriptionSummary { mintedList: { title: string; desc: string; inscriptions: Inscription[]; }[]; } interface InscribeOrder { orderId: string; payAddress: string; totalFee: number; minerFee: number; originServiceFee: number; serviceFee: number; outputValue: number; } /** * Bitcoin related type definitions */ interface BitcoinBalance { confirm_amount: string; pending_amount: string; amount: string; confirm_btc_amount: string; pending_btc_amount: string; btc_amount: string; confirm_inscription_amount: string; pending_inscription_amount: string; inscription_amount: string; usd_value: string; } interface BitcoinBalanceV2 { availableBalance: number; unavailableBalance: number; totalBalance: number; } interface UTXO { txid: string; vout: number; satoshis: number; scriptPk: string; addressType: AddressType; inscriptions: { inscriptionId: string; inscriptionNumber?: number; offset: number; }[]; atomicals: { atomicalId: string; atomicalNumber: number; type: 'NFT' | 'FT'; ticker?: string; atomicalValue?: number; }[]; runes: { runeid: string; rune: string; amount: string; }[]; } interface UTXO_Detail { txId: string; outputIndex: number; satoshis: number; scriptPk: string; addressType: AddressType; inscriptions: Inscription[]; } interface AddressSummary { address: string; totalSatoshis: number; btcSatoshis: number; assetSatoshis: number; inscriptionCount: number; atomicalsCount: number; brc20Count: number; brc20Count5Byte: number; arc20Count: number; runesCount: number; loading?: boolean; } interface FeeSummary { list: { title: string; desc: string; feeRate: number; }[]; } interface CoinPrice { btc: number; fb: number; } type TickPriceItem = { curPrice: number; changePercent: number; }; /** * BRC20 token related type definitions */ interface TokenBalance { availableBalance: string; overallBalance: string; ticker: string; tickerHex: string; transferableBalance: string; availableBalanceSafe: string; availableBalanceUnSafe: string; selfMint: boolean; displayName?: string; tag?: string; } interface TokenInfo { totalSupply: string; totalMinted: string; decimal: number; holder: string; inscriptionId: string; selfMint?: boolean; holdersCount: number; historyCount: number; logo: string; } interface TokenTransfer { ticker: string; amount: string; inscriptionId: string; inscriptionNumber: number; timestamp: number; confirmations: number; satoshi: number; } interface AddressTokenSummary { tokenInfo: TokenInfo; tokenBalance: TokenBalance; historyList: TokenTransfer[]; transferableList: TokenTransfer[]; } interface BRC20HistoryItem { type: string; from: string; to: string; amount: string; txid: string; blocktime: number; } /** * Runes protocol related type definitions */ interface RuneBalance { amount: string; runeid: string; rune: string; spacedRune: string; symbol: string; divisibility: number; } interface RuneInfo { runeid: string; rune: string; spacedRune: string; number: number; height: number; txidx: number; timestamp: number; divisibility: number; symbol: string; etching: string; premine: string; terms: { amount: string; cap: string; heightStart: number; heightEnd: number; offsetStart: number; offsetEnd: number; }; mints: string; burned: string; holders: number; transactions: number; mintable: boolean; remaining: string; start: number; end: number; supply: string; parent?: string; } interface AddressRunesTokenSummary { runeInfo: RuneInfo; runeBalance: RuneBalance; runeLogo?: Inscription; } /** * CAT20/CAT721 protocol related type definitions */ interface CAT20Balance { tokenId: string; amount: string; name: string; symbol: string; decimals: number; } interface CAT20TokenInfo { tokenId: string; name: string; symbol: string; max: string; premine: string; limit: number; } interface AddressCAT20TokenSummary { cat20Info: CAT20TokenInfo; cat20Balance: CAT20Balance; } interface AddressCAT20UtxoSummary { availableTokenAmounts: string[]; availableUtxoCount: number; totalUtxoCount: number; } interface CAT721CollectionInfo { collectionId: string; name: string; symbol: string; max: string; premine: string; description: string; contentType: string; } interface AddressCAT721CollectionSummary { collectionInfo: CAT721CollectionInfo; localIds: string[]; } /** * Alkanes protocol related type definitions */ interface AlkanesBalance { amount: string; alkaneid: string; alkane: string; spacedAlkane: string; symbol: string; divisibility: number; } interface AlkanesInfo { alkaneid: string; alkane: string; spacedAlkane: string; number: number; height: number; txidx: number; timestamp: number; divisibility: number; symbol: string; etching: string; premine: string; terms: { amount: string; cap: string; heightStart: number; heightEnd: number; offsetStart: number; offsetEnd: number; }; mints: string; burned: string; holders: number; transactions: number; mintable: boolean; remaining: string; start: number; end: number; supply: string; parent?: string; } interface AlkanesCollection { collectionId: string; name: string; symbol: string; count: number; previewLocalIds: string[]; } interface AddressAlkanesTokenSummary { alkanesInfo: AlkanesInfo; alkanesBalance: AlkanesBalance; alkanesLogo?: Inscription; } /** * Transaction and PSBT related type definitions */ interface UtxoAssets { txid: string; vout: number; inscriptions: { inscriptionId: string; inscriptionNumber: number; offset: number; }[]; runes: RuneBalance[]; alkanes: AlkanesBalance[]; } interface DecodedPsbt { inputInfos: { txid: string; vout: number; address: string; value: number; inscriptions: Inscription[]; sighashType: number; runes: RuneBalance[]; alkanes: AlkanesBalance[]; contract?: any; }[]; outputInfos: { address: string; value: number; inscriptions: Inscription[]; runes: RuneBalance[]; alkanes: AlkanesBalance[]; contract?: any; }[]; inscriptions: { [key: string]: Inscription; }; feeRate: number; fee: number; features: { rbf: boolean; }; risks: any[]; psbtHex: string; rawtx: string; toAddress: string; estimateFee: number; } /** * Application and configuration related type definitions */ interface AppDisclaimerMeta { enabled: boolean; version?: string; } interface AppExtraInfo { disclaimer?: AppDisclaimerMeta; } interface AppDisclaimer { title?: string; content: string; confirmText?: string; cancelText?: string; } interface AppExtra { disclaimer?: AppDisclaimer; } interface AppInfo { logo: string; title: string; desc: string; route?: string; url: string; time: number; id: number; tag?: string; readtime?: number; new?: boolean; tagColor?: string; extraInfo?: AppExtraInfo; } interface AppSummary { apps: AppInfo[]; readTabTime?: number; } interface WalletConfig { version: string; endpoint: string; endpoints: string[]; chainType: NetworkType; enabledFeatures: string[]; feeRates: { slow: number; standard: number; fast: number; }; limits: { maxTransactionSize: number; maxFeeRate: number; minFeeRate: number; maxUtxos: number; }; } interface VersionDetail { version: string; title: string; changelogs: string[]; notice: string; } interface BabylonConfigV2 { [key: string]: any; } declare enum AnnouncementLinkType { EXTERNAL_LINK = "EXTERNAL_LINK", INTERNAL_LINK = "INTERNAL_LINK", INTERNAL_ROUTE = "INTERNAL_ROUTE", NONE = "NONE" } interface Announcement { id: string; title: string; description: string; startTime: number; endTime: number; link: string; linkType: AnnouncementLinkType; } export { AddressAlkanesTokenSummary, AddressCAT20TokenSummary, AddressCAT20UtxoSummary, AddressCAT721CollectionSummary, AddressRunesTokenSummary, AddressSummary, AddressTokenSummary, AddressUserToSignInput, AlkanesBalance, AlkanesCollection, AlkanesInfo, Announcement, AnnouncementLinkType, ApiResponse, AppDisclaimer, AppDisclaimerMeta, AppExtra, AppExtraInfo, AppInfo, AppSummary, BRC20HistoryItem, BabylonConfigV2, BitcoinBalance, BitcoinBalanceV2, CAT20Balance, CAT20TokenInfo, CAT721CollectionInfo, ClientConfig, CoinPrice, DecodedPsbt, FeeSummary, InscribeOrder, Inscription, InscriptionSummary, PaginationParams, PublicKeyUserToSignInput, RequestConfig, RuneBalance, RuneInfo, TickPriceItem, ToSignInput, TokenBalance, TokenInfo, TokenTransfer, TxType, UTXO, UTXO_Detail, UserToSignInput, UtxoAssets, VersionDetail, WalletConfig };