import { type Refuel, type Wallet } from '@layerswap/widget-types'; import { Context } from 'react'; import { TransactionStatus, WithdrawType, GaslessAuthorizationResult, SwapResponse, DepositAction, SwapBasicData, SwapQuote, SwapDetails } from '../lib/apiClients/layerSwapApiClient'; import { InitialSettings } from '../Models/InitialSettings'; import { KeyedMutator } from 'swr'; import type { ApiResponse } from '@layerswap/widget-types'; import { Partner } from '../Models/Partner'; import type { ApiError } from '@layerswap/widget-types'; import { Network } from '@layerswap/widget-types'; import { QuoteError } from '../hooks/useFee'; import { SwapFormValues } from '../components/Pages/Swap/Form/SwapFormValues'; import { ResolvedSwapStatus } from '../components/utils/resolveSwapPhase'; import { type ResolvedSwapFlow } from '../components/utils/resolveSwapFlow'; export declare const SwapDataStateContext: Context; export declare const SwapDataUpdateContext: Context; export type ApprovalTransaction = { swapId: string; sourceAddress: string; network: string; hash: string; }; export type WalletActionFeedback = { swapId?: string; loading: boolean; actionStateText?: string; error?: Error; failed?: boolean; isSignatureError?: boolean; showSwapProgress?: boolean; }; export type UpdateSwapInterface = { createSwap: (values: SwapFormValues, query: InitialSettings, partner?: Partner) => Promise; canAdjustAmount: () => boolean; syncAmountPresetDraft: (values: SwapFormValues) => boolean; setQuoteLoading: (value: boolean) => void; mutateSwap: KeyedMutator>; mutateDepositActions: KeyedMutator>; reportWalletActionFeedback: (feedback: WalletActionFeedback) => () => void; setWalletActionExecuting: (value: boolean) => void; acquireWalletExecution: () => () => void; setSwapViewMounted: (value: boolean) => void; setDepositAddressIsFromAccount: (value: boolean) => void; setWithdrawType: (value: WithdrawType) => void; setSwapId: (value: string | undefined) => void; markWalletExecutionStarted: (swapId: string) => void; startFreshSwapAttempt: () => void; watchApprovalTransaction: (transaction: ApprovalTransaction) => () => void; setSwapDataFromQuery?: (swapData: SwapResponse | undefined) => void; setSubmitedFormValues: (values: NonNullable) => void; setSwapModalOpen: (value: boolean) => void; }; export type SwapContextData = { gaslessAuthorization?: GaslessAuthorizationResult; inputTransactionStatus?: { hash: string; status: TransactionStatus; }; swapApiError?: ApiError; swapDetailsError?: string; depositAddressIsFromAccount?: boolean; depositActionsResponse?: DepositAction[]; depositActionsError?: string; approvalTransaction?: ApprovalTransaction & { status?: string; }; withdrawType: WithdrawType | undefined; swapBasicData: SwapBasicData & { refuel: boolean; } | undefined; quote: SwapQuote | undefined; quoteIsLoading: boolean; amountPresetLocked: boolean; amountPresetRevision: number; quoteError: QuoteError | undefined; refuel: Refuel | undefined; swapDetails: SwapDetails | undefined; swapId: string | undefined; walletExecutionStarted: boolean; walletActionFeedback?: WalletActionFeedback; swapModalOpen: boolean; resolved: ResolvedSwapStatus; flow: ResolvedSwapFlow; swapError?: string | null | undefined; setSwapError?: (value: string | null) => void; }; export declare function SwapDataProvider({ children, initialSwapData }: { children: React.ReactNode; initialSwapData?: SwapResponse | null; }): import("react/jsx-runtime").JSX.Element; export declare function useSwapDataState(): SwapContextData; export declare function useSwapDataUpdate(): UpdateSwapInterface; export declare const WalletIsSupportedForSource: ({ sourceNetwork, sourceWallet }: { sourceWallet: Wallet | undefined; sourceNetwork: Network | undefined; }) => boolean; //# sourceMappingURL=swap.d.ts.map