import type { CheckoutInitTokenTransferResponse } from '@funkit/api-base';
import type { TokenTransferSourceChainsAndAssets } from '../modals/CheckoutModal/TransferToken/TransferToken';
export type TransferTokenDefault = {
    token: string;
    chainId: number;
};
interface UseTokenChainResult {
    assets: TokenTransferSourceChainsAndAssets;
    selectedChainId: number | undefined;
    handleChainChange: (chainId?: number, autoUpdate?: boolean) => void;
    selectedToken: string | undefined;
    selectedChainName: string | undefined;
    handleTokenChange: (token: string, chainId?: number, autoUpdate?: boolean) => void;
    isLoadingAssets: boolean;
    chainIdSortOrder: number[];
    popularTokenSymbols: string[];
    priorityTokenSymbols: string[];
}
export interface UseTokenAndChainDropdownOptions {
    transferInit?: CheckoutInitTokenTransferResponse;
    defaultValues?: TransferTokenDefault;
    /** When true, resolves the withdrawal Statsig config instead of the token-transfer one. Defaults to false. */
    isWithdrawal?: boolean;
    /** When true, starts with no chain/token pre-selected (user must pick both). Defaults to false. */
    noDefaultSelection?: boolean;
}
/**
 * Semi reusable hook (tied into token transfer configuration)
 * ensures token&chain dropdown preselection logic is reusable
 */
export declare const useTokenAndChainDropdown: ({ defaultValues, isWithdrawal, noDefaultSelection, transferInit, }: UseTokenAndChainDropdownOptions) => UseTokenChainResult;
export {};
