import { FheTypeValue } from '@cofhe/sdk'; import { Address } from 'viem'; import { ReactNode } from 'react'; interface BaseProps { /** Additional CSS class names */ className?: string; /** Test ID for testing purposes */ testId?: string; } type ComponentSize = 'sm' | 'md' | 'lg'; interface DropdownOption { label: string; value: FheTypeValue; maxValue?: bigint | null; description?: string; } interface EncryptionProgressData { step: string; progress: number; label: string; } interface EncryptionResultData { value: string; encrypted: any; } interface EncryptionStartData { value: string; type: string; } declare enum FloatingButtonPage$1 { Main = "main", Settings = "settings", TokenInfo = "tokeninfo", Send = "send", Shield = "shield", Activity = "activity", ACPs = "acps", GenerateACPs = "generateACP", DelegateACPs = "delegateACP", ReceiveACPs = "receiveACP", IncomingShares = "incomingShares", Debug = "debug", Portfolio = "portfolio", ClaimableTokens = "claimableTokens" } interface FloatingButtonPagePropsRegistry { } type FloatingButtonPagePropsMap = { [K in FloatingButtonPage$1]: K extends keyof FloatingButtonPagePropsRegistry ? FloatingButtonPagePropsRegistry[K] : void; }; type PageState = { page: K; props?: FloatingButtonPagePropsMap[K]; }; type FloatingButtonPosition = 'top-left' | 'top-right' | 'bottom-left' | 'bottom-right'; type FloatingButtonPositionType = 'fixed' | 'absolute'; interface CofheFloatingButtonProps extends BaseProps { children?: React.ReactNode; /** Position of the floating button */ position?: FloatingButtonPosition; /** Z-index value (default: 9999) */ zIndex?: number; /** Position type: 'fixed' stays on screen, 'absolute' positions within parent (default: 'fixed') */ positionType?: FloatingButtonPositionType; /** Dark mode for the button (independent of page theme) */ darkMode?: boolean; overriddingPage?: PageState; } declare const CofheStatusActionIntents: { readonly openACPs: "open-acps"; readonly openClaimableTokens: "open-claimable-tokens"; }; type CofheStatusActionIntent = (typeof CofheStatusActionIntents)[keyof typeof CofheStatusActionIntents]; /** * Status ids emitted by the SDK's built-in status watchers. * * `useCofheStatuses()` may still include additional custom statuses added by * internal or app-specific flows, so treat this as the known built-in subset. */ declare const COFHE_STATUS_IDS: { readonly claimsAvailable: "claims-available"; readonly missingACP: "missing-acp"; readonly acpExpired: "acp-expired"; readonly acpExpiringSoon: "acp-expiring-soon"; readonly acpShared: "acp-shared"; }; type CofheStatusId = (typeof COFHE_STATUS_IDS)[keyof typeof COFHE_STATUS_IDS]; type CofheStatusAction = { label: string; intent: CofheStatusActionIntent; }; /** * Public status shape exposed to consumers. * * Consumer-facing status actions must declare an intent so the widget can map * them to the correct internal handler. */ type CofheStatus = { id: string; variant: CofheStatusVariant; title: string; description?: string; action?: CofheStatusAction; }; type CofheStatusVariant = 'error' | 'warning' | 'info'; declare const TOKEN_TYPE_CONFIG: { readonly wrappedErc20: { readonly enabled: true; readonly label: "Wrapped ERC20 confidential token"; readonly confidentialValueType: "uint64"; readonly publicBalanceSource: "erc20Pair"; readonly operations: { readonly confidentialBalance: true; readonly transfer: true; readonly publicBalance: true; readonly shield: true; readonly unshield: true; readonly claim: true; readonly claimable: true; }; readonly contracts: { readonly shield: { readonly approval: { readonly allowance: { readonly abi: readonly [{ readonly name: "allowance"; readonly type: "function"; readonly stateMutability: "view"; readonly inputs: readonly [{ readonly type: "address"; readonly name: "owner"; }, { readonly type: "address"; readonly name: "spender"; }]; readonly outputs: readonly [{ readonly type: "uint256"; }]; }]; readonly functionName: "allowance"; }; readonly approve: { readonly abi: readonly [{ readonly name: "approve"; readonly type: "function"; readonly stateMutability: "nonpayable"; readonly inputs: readonly [{ readonly type: "address"; readonly name: "spender"; }, { readonly type: "uint256"; readonly name: "amount"; }]; readonly outputs: readonly [{ readonly type: "bool"; }]; }]; readonly functionName: "approve"; }; }; readonly erc20: { readonly abi: readonly [{ readonly name: "shield"; readonly type: "function"; readonly stateMutability: "nonpayable"; readonly inputs: readonly [{ readonly type: "address"; readonly name: "to"; }, { readonly type: "uint256"; readonly name: "amount"; }]; readonly outputs: readonly [{ readonly type: "bytes32"; }]; }]; readonly functionName: "shield"; }; readonly wrappedPair: { readonly abi: readonly [{ readonly name: "shield"; readonly type: "function"; readonly stateMutability: "nonpayable"; readonly inputs: readonly [{ readonly type: "address"; readonly name: "to"; }, { readonly type: "uint256"; readonly name: "amount"; }]; readonly outputs: readonly [{ readonly type: "bytes32"; }]; }]; readonly functionName: "shield"; }; }; readonly confidentialBalance: { readonly abi: readonly [{ readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "account"; readonly type: "address"; }]; readonly name: "confidentialBalanceOf"; readonly outputs: readonly [{ readonly internalType: "euint64"; readonly name: ""; readonly type: "bytes32"; }]; readonly stateMutability: "view"; readonly type: "function"; }]; readonly functionName: "confidentialBalanceOf"; }; readonly confidentialTransfer: { readonly abi: readonly [{ readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "to"; readonly type: "address"; }, { readonly internalType: "externalEuint64"; readonly name: "encryptedAmount"; readonly type: "bytes32"; }, { readonly internalType: "bytes"; readonly name: "inputProof"; readonly type: "bytes"; }]; readonly name: "confidentialTransfer"; readonly outputs: readonly [{ readonly internalType: "euint64"; readonly name: "transferred"; readonly type: "bytes32"; }]; readonly stateMutability: "nonpayable"; readonly type: "function"; }]; readonly functionName: "confidentialTransfer"; }; readonly unshield: { readonly abi: readonly [{ readonly name: "unshield"; readonly type: "function"; readonly stateMutability: "nonpayable"; readonly inputs: readonly [{ readonly type: "address"; readonly name: "from"; }, { readonly type: "address"; readonly name: "to"; }, { readonly type: "uint64"; readonly name: "amount"; }]; readonly outputs: readonly [{ readonly type: "bytes32"; }]; }]; readonly functionName: "unshield"; }; readonly claims: { readonly single: { readonly abi: readonly [{ readonly name: "claimUnshielded"; readonly type: "function"; readonly stateMutability: "nonpayable"; readonly inputs: readonly [{ readonly type: "bytes32"; readonly name: "id"; }, { readonly type: "uint64"; readonly name: "decryptedAmount"; }, { readonly type: "bytes"; readonly name: "decryptionProof"; }]; readonly outputs: readonly []; }]; readonly functionName: "claimUnshielded"; }; readonly all: { readonly abi: readonly [{ readonly name: "claimUnshieldedBatch"; readonly type: "function"; readonly stateMutability: "nonpayable"; readonly inputs: readonly [{ readonly type: "bytes32[]"; readonly name: "ids"; }, { readonly type: "uint64[]"; readonly name: "decryptedAmounts"; }, { readonly type: "bytes[]"; readonly name: "decryptionProofs"; }]; readonly outputs: readonly []; }]; readonly functionName: "claimUnshieldedBatch"; }; readonly query: { readonly abi: readonly [{ readonly inputs: readonly [{ readonly name: "user"; readonly type: "address"; }]; readonly name: "getUserClaims"; readonly outputs: readonly [{ readonly components: readonly [{ readonly name: "id"; readonly type: "bytes32"; }, { readonly name: "to"; readonly type: "address"; }, { readonly name: "ctHash"; readonly type: "bytes32"; }, { readonly name: "decryptedAmount"; readonly type: "uint64"; }, { readonly name: "claimed"; readonly type: "bool"; }]; readonly name: "userClaims"; readonly type: "tuple[]"; }]; readonly stateMutability: "view"; readonly type: "function"; }]; readonly functionName: "getUserClaims"; }; }; }; readonly interfaceIds: readonly ["0x4d52d826"]; readonly pairResolution: "contractGetter"; readonly pairGetterFunctionNames: readonly ["token", "underlying", "underlyingToken", "asset", "erc20", "erc20Token"]; readonly claimSubmission: "batch"; }; readonly wrappedNative: { readonly enabled: true; readonly label: "Wrapped native confidential token"; readonly confidentialValueType: "uint64"; readonly publicBalanceSource: "erc20Pair"; readonly operations: { readonly confidentialBalance: true; readonly transfer: true; readonly publicBalance: true; readonly shield: true; readonly unshield: true; readonly claim: true; readonly claimable: true; }; readonly contracts: { readonly shield: { readonly approval: { readonly allowance: { readonly abi: readonly [{ readonly name: "allowance"; readonly type: "function"; readonly stateMutability: "view"; readonly inputs: readonly [{ readonly type: "address"; readonly name: "owner"; }, { readonly type: "address"; readonly name: "spender"; }]; readonly outputs: readonly [{ readonly type: "uint256"; }]; }]; readonly functionName: "allowance"; }; readonly approve: { readonly abi: readonly [{ readonly name: "approve"; readonly type: "function"; readonly stateMutability: "nonpayable"; readonly inputs: readonly [{ readonly type: "address"; readonly name: "spender"; }, { readonly type: "uint256"; readonly name: "amount"; }]; readonly outputs: readonly [{ readonly type: "bool"; }]; }]; readonly functionName: "approve"; }; }; readonly erc20: { readonly abi: readonly [{ readonly name: "shieldWrappedNative"; readonly type: "function"; readonly stateMutability: "nonpayable"; readonly inputs: readonly [{ readonly type: "address"; readonly name: "to"; }, { readonly type: "uint256"; readonly name: "value"; }]; readonly outputs: readonly [{ readonly type: "bytes32"; }]; }]; readonly functionName: "shieldWrappedNative"; }; readonly native: { readonly abi: readonly [{ readonly name: "shieldNative"; readonly type: "function"; readonly stateMutability: "payable"; readonly inputs: readonly [{ readonly type: "address"; readonly name: "to"; }]; readonly outputs: readonly [{ readonly type: "bytes32"; }]; }]; readonly functionName: "shieldNative"; }; readonly wrappedPair: { readonly abi: readonly [{ readonly name: "shieldWrappedNative"; readonly type: "function"; readonly stateMutability: "nonpayable"; readonly inputs: readonly [{ readonly type: "address"; readonly name: "to"; }, { readonly type: "uint256"; readonly name: "value"; }]; readonly outputs: readonly [{ readonly type: "bytes32"; }]; }]; readonly functionName: "shieldWrappedNative"; }; }; readonly confidentialBalance: { readonly abi: readonly [{ readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "account"; readonly type: "address"; }]; readonly name: "confidentialBalanceOf"; readonly outputs: readonly [{ readonly internalType: "euint64"; readonly name: ""; readonly type: "bytes32"; }]; readonly stateMutability: "view"; readonly type: "function"; }]; readonly functionName: "confidentialBalanceOf"; }; readonly confidentialTransfer: { readonly abi: readonly [{ readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "to"; readonly type: "address"; }, { readonly internalType: "externalEuint64"; readonly name: "encryptedAmount"; readonly type: "bytes32"; }, { readonly internalType: "bytes"; readonly name: "inputProof"; readonly type: "bytes"; }]; readonly name: "confidentialTransfer"; readonly outputs: readonly [{ readonly internalType: "euint64"; readonly name: "transferred"; readonly type: "bytes32"; }]; readonly stateMutability: "nonpayable"; readonly type: "function"; }]; readonly functionName: "confidentialTransfer"; }; readonly unshield: { readonly abi: readonly [{ readonly name: "unshield"; readonly type: "function"; readonly stateMutability: "nonpayable"; readonly inputs: readonly [{ readonly type: "address"; readonly name: "from"; }, { readonly type: "address"; readonly name: "to"; }, { readonly type: "uint64"; readonly name: "amount"; }]; readonly outputs: readonly [{ readonly type: "bytes32"; }]; }]; readonly functionName: "unshield"; }; readonly claims: { readonly single: { readonly abi: readonly [{ readonly name: "claimUnshielded"; readonly type: "function"; readonly stateMutability: "nonpayable"; readonly inputs: readonly [{ readonly type: "bytes32"; readonly name: "id"; }, { readonly type: "uint64"; readonly name: "decryptedAmount"; }, { readonly type: "bytes"; readonly name: "decryptionProof"; }]; readonly outputs: readonly []; }]; readonly functionName: "claimUnshielded"; }; readonly all: { readonly abi: readonly [{ readonly name: "claimUnshieldedBatch"; readonly type: "function"; readonly stateMutability: "nonpayable"; readonly inputs: readonly [{ readonly type: "bytes32[]"; readonly name: "ids"; }, { readonly type: "uint64[]"; readonly name: "decryptedAmounts"; }, { readonly type: "bytes[]"; readonly name: "decryptionProofs"; }]; readonly outputs: readonly []; }]; readonly functionName: "claimUnshieldedBatch"; }; readonly query: { readonly abi: readonly [{ readonly inputs: readonly [{ readonly name: "user"; readonly type: "address"; }]; readonly name: "getUserClaims"; readonly outputs: readonly [{ readonly components: readonly [{ readonly name: "id"; readonly type: "bytes32"; }, { readonly name: "to"; readonly type: "address"; }, { readonly name: "ctHash"; readonly type: "bytes32"; }, { readonly name: "decryptedAmount"; readonly type: "uint64"; }, { readonly name: "claimed"; readonly type: "bool"; }]; readonly name: "userClaims"; readonly type: "tuple[]"; }]; readonly stateMutability: "view"; readonly type: "function"; }]; readonly functionName: "getUserClaims"; }; }; }; readonly interfaceIds: readonly ["0xaefc9bc7"]; readonly pairResolution: "native"; readonly claimSubmission: "batch"; }; readonly pure: { readonly enabled: false; readonly label: "Pure confidential token"; readonly confidentialValueType: "uint64"; readonly publicBalanceSource: null; readonly operations: { readonly confidentialBalance: false; readonly transfer: false; readonly publicBalance: false; readonly shield: false; readonly unshield: false; readonly claim: false; readonly claimable: false; }; }; readonly dual: { readonly enabled: true; readonly label: "Dual-balance confidential token"; readonly confidentialValueType: "uint64"; readonly publicBalanceSource: "token"; readonly operations: { readonly confidentialBalance: true; readonly transfer: true; readonly publicBalance: true; readonly shield: true; readonly unshield: true; readonly claim: true; readonly claimable: true; }; readonly contracts: { readonly confidentialBalance: { readonly abi: readonly [{ readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "account"; readonly type: "address"; }]; readonly name: "confidentialBalanceOf"; readonly outputs: readonly [{ readonly internalType: "euint64"; readonly name: ""; readonly type: "bytes32"; }]; readonly stateMutability: "view"; readonly type: "function"; }]; readonly functionName: "confidentialBalanceOf"; }; readonly confidentialTransfer: { readonly abi: readonly [{ readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "to"; readonly type: "address"; }, { readonly internalType: "externalEuint64"; readonly name: "inValue"; readonly type: "bytes32"; }, { readonly internalType: "bytes"; readonly name: "inputProof"; readonly type: "bytes"; }]; readonly name: "confidentialTransfer"; readonly outputs: readonly [{ readonly internalType: "euint64"; readonly name: "transferred"; readonly type: "bytes32"; }]; readonly stateMutability: "nonpayable"; readonly type: "function"; }]; readonly functionName: "confidentialTransfer"; }; readonly shield: { readonly erc20: { readonly abi: readonly [{ readonly name: "shield"; readonly type: "function"; readonly stateMutability: "nonpayable"; readonly inputs: readonly [{ readonly type: "uint256"; readonly name: "amount"; }]; readonly outputs: readonly []; }]; readonly functionName: "shield"; }; }; readonly unshield: { readonly abi: readonly [{ readonly name: "unshield"; readonly type: "function"; readonly stateMutability: "nonpayable"; readonly inputs: readonly [{ readonly type: "uint64"; readonly name: "amount"; }]; readonly outputs: readonly [{ readonly type: "bytes32"; }]; }]; readonly functionName: "unshield"; }; readonly claims: { readonly single: { readonly abi: readonly [{ readonly name: "claimUnshielded"; readonly type: "function"; readonly stateMutability: "nonpayable"; readonly inputs: readonly [{ readonly type: "bytes32"; readonly name: "id"; }, { readonly type: "uint64"; readonly name: "decryptedAmount"; }, { readonly type: "bytes"; readonly name: "decryptionProof"; }]; readonly outputs: readonly []; }]; readonly functionName: "claimUnshielded"; }; readonly all: { readonly abi: readonly [{ readonly name: "claimUnshieldedBatch"; readonly type: "function"; readonly stateMutability: "nonpayable"; readonly inputs: readonly [{ readonly type: "bytes32[]"; readonly name: "ids"; }, { readonly type: "uint64[]"; readonly name: "decryptedAmounts"; }, { readonly type: "bytes[]"; readonly name: "decryptionProofs"; }]; readonly outputs: readonly []; }]; readonly functionName: "claimUnshieldedBatch"; }; readonly query: { readonly abi: readonly [{ readonly inputs: readonly [{ readonly name: "user"; readonly type: "address"; }]; readonly name: "getUserClaims"; readonly outputs: readonly [{ readonly components: readonly [{ readonly name: "id"; readonly type: "bytes32"; }, { readonly name: "to"; readonly type: "address"; }, { readonly name: "ctHash"; readonly type: "bytes32"; }, { readonly name: "decryptedAmount"; readonly type: "uint64"; }, { readonly name: "claimed"; readonly type: "bool"; }]; readonly name: "userClaims"; readonly type: "tuple[]"; }]; readonly stateMutability: "view"; readonly type: "function"; }]; readonly functionName: "getUserClaims"; }; }; }; readonly interfaceIds: readonly ["0xbe4d657f"]; readonly claimSubmission: "batch"; }; }; type TokenConfidentialityType = keyof typeof TOKEN_TYPE_CONFIG; /** * Token types shared across hooks/components/utils. * * IMPORTANT: Keep this file free from hooks/providers/utils imports * to avoid circular dependencies. */ /** * Special address representing native ETH (used in erc20Pair for ConfidentialETH tokens) */ declare const ETH_ADDRESS_LOWERCASE: "0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee"; /** * ERC20 pair information for wrapped confidential tokens */ type Erc20Pair = { /** Address of the underlying ERC20 token (or ETH_ADDRESS for native ETH) */ address: Address; symbol: string; decimals: number; logoURI?: string; }; type TokenConfidentialValueType = 'uint64' | 'uint128'; /** * Decimals of the public (underlying) side: the ERC20 pair for wrapped tokens, the token * itself otherwise. Public balances, shield inputs and approvals are denominated in these. */ declare function getPublicDecimals(token: ConfidentialToken): number; /** * Decimals of the confidential (encrypted) side. Confidential balances, unshield, transfer * and claim amounts are denominated in these. May differ from the public side (e.g. 6 vs 18): * wrapped tokens carry them as `token.decimals` (the public side lives on the erc20Pair); * dual tokens keep `token.decimals` public (ERC20 `decimals()`) and declare the confidential * side via `extensions.fhenix.confidentialDecimals` (contract getter `confidentialDecimals()`). */ declare function getConfidentialDecimals(token: ConfidentialToken): number; /** Symbol of the public (underlying) side. */ declare function getPublicSymbol(token: ConfidentialToken): string; type ConfidentialToken = { chainId: number; address: `0x${string}`; symbol: string; decimals: number; name: string; logoURI?: string; extensions: Record & { fhenix: { confidentialityType: TokenConfidentialityType; confidentialValueType: TokenConfidentialValueType; /** * Confidential-side decimals for dual tokens whose public `decimals()` differs * (e.g. public 18 / confidential 6). Defaults to `decimals` when absent. */ confidentialDecimals?: number; /** ERC20 pair for wrapped tokens - contains underlying token info */ erc20Pair?: Erc20Pair; }; }; }; /** * Returns the public consumer-facing status list. * * Only statuses with the public intent-based action shape are exposed here. * Internal callback-action statuses remain widget-only and are filtered out. */ declare const useCofheStatuses: () => readonly CofheStatus[]; /** * Gets the block explorer URL for a given chain ID * @param chainId - The chain ID to look up * @returns The block explorer base URL, or undefined if not found */ declare const getBlockExplorerUrl: (chainId: number) => string | undefined; /** * Gets the block explorer transaction URL for a given chain ID and transaction hash * @param chainId - The chain ID * @param hash - The transaction hash * @returns The full transaction URL, or undefined if chain not found */ declare const getBlockExplorerTxUrl: (chainId: number, hash: string) => string | undefined; /** * Gets the block explorer address URL for a given chain ID and address * @param chainId - The chain ID * @param address - The address * @returns The full address URL, or undefined if chain not found */ declare const getBlockExplorerAddressUrl: (chainId: number, address: string) => string | undefined; /** * Gets the block explorer token URL for a given chain ID and token address * @param chainId - The chain ID * @param tokenAddress - The token contract address * @returns The full token URL, or undefined if chain not found */ declare const getBlockExplorerTokenUrl: (chainId: number, tokenAddress: string) => string | undefined; /** * Check if an erc20Pair address is the native ETH address * @param erc20Pair - The ERC20 pair object from token extensions * @returns True if the pair address matches ETH_ADDRESS */ declare const isEthPair: (erc20Pair: Erc20Pair | undefined) => boolean; /** * Check if a token is a wrapped ETH token (ConfidentialETH) * @param token - The token object * @returns True if the token is a wrapped token with ETH as the underlying pair */ declare const isWrappedEthToken: (token: ConfidentialToken) => boolean; interface FheTypeOption { label: string; value: FheTypeValue; maxValue: bigint | null; description: string; } declare const FheTypesList: FheTypeOption[]; /** * Truncates a hex string (address or hash) to show beginning and end with ellipsis * @param value - The hex string to truncate (address, hash, etc.) * @param start - Number of characters to show at the start (default: 6, includes 0x) * @param end - Number of characters to show at the end (default: 4) * @returns Truncated string, or original if too short * * @example * truncateHash('0x1234567890abcdef1234567890abcdef12345678') * // Returns: '0x1234...5678' */ declare const truncateHash: (value: string, start?: number, end?: number) => string; /** * Formats a timestamp as a relative time string (e.g., "2 hours ago") * @param timestamp - Unix timestamp in milliseconds * @returns Formatted relative time string */ declare const formatRelativeTime: (timestamp: number) => string; type GenerateACPPageProps = { onSuccessNavigateTo?: () => void; onCancel?: () => void; onBack?: () => void; cause?: 'clicked_on_confidential_balance'; }; declare module '../../../pagesConfig/types' { interface FloatingButtonPagePropsRegistry { [FloatingButtonPage.GenerateACPs]: GenerateACPPageProps; } } type DelegateACPPageProps = { onSuccessNavigateTo?: () => void; onCancel?: () => void; onBack?: () => void; }; declare module '../../../pagesConfig/types' { interface FloatingButtonPagePropsRegistry { [FloatingButtonPage.DelegateACPs]: DelegateACPPageProps; } } type TokenInfoPageProps = { token: ConfidentialToken; }; declare module '../pagesConfig/types' { interface FloatingButtonPagePropsRegistry { [FloatingButtonPage.TokenInfo]: TokenInfoPageProps; } } type SendPageProps = { token: ConfidentialToken; }; declare module '../pagesConfig/types' { interface FloatingButtonPagePropsRegistry { [FloatingButtonPage.Send]: SendPageProps; } } type Mode = 'shield' | 'unshield'; type ShieldPageProps = { token: ConfidentialToken; defaultMode?: Mode; }; declare module '../pagesConfig/types' { interface FloatingButtonPagePropsRegistry { [FloatingButtonPage.Shield]: ShieldPageProps; } } interface CofheFloatingButtonProviderProps { children?: ReactNode; } declare const CofheFloatingButtonProvider: React.FC; /** * Internal-only action shape used inside the React widget implementation. * * The callback form must not cross the public API boundary. Any status exposed * to consumers should be represented as {@link CofheStatus} with an intent. */ type CofheFloatingButtonInternalAction = CofheStatusAction | { label: string; onClick: () => void; }; /** * Internal widget status shape stored and rendered by the floating button. * * Use {@link CofheStatus} for any consumer-facing API. */ type CofheFloatingButtonInternalStatus = Omit & { action?: CofheFloatingButtonInternalAction; }; declare function sortCofheStatuses(a: Pick, b: Pick): number; export { type BaseProps as B, type ConfidentialToken as C, type DropdownOption as D, ETH_ADDRESS_LOWERCASE as E, type FloatingButtonPosition as F, type GenerateACPPageProps as G, type Erc20Pair as a, FheTypesList as b, getBlockExplorerTokenUrl as c, getBlockExplorerTxUrl as d, getBlockExplorerUrl as e, formatRelativeTime as f, getBlockExplorerAddressUrl as g, isWrappedEthToken as h, isEthPair as i, CofheFloatingButtonProvider as j, COFHE_STATUS_IDS as k, CofheStatusActionIntents as l, type CofheStatus as m, type CofheStatusActionIntent as n, type CofheStatusId as o, getConfidentialDecimals as p, getPublicDecimals as q, getPublicSymbol as r, sortCofheStatuses as s, truncateHash as t, useCofheStatuses as u, type ComponentSize as v, type EncryptionStartData as w, type EncryptionProgressData as x, type EncryptionResultData as y, type CofheFloatingButtonProps as z };