import type { SupportedSKChains } from "@sk-widget/domain/types/chains";
import type { Languages, localResources } from "@sk-widget/translation";
import type { RecursivePartial } from "@sk-widget/types";
import type { TokenDto, TransactionFormat } from "@stakekit/api-hooks";
import type { PropsWithChildren, ReactNode } from "react";
import type { SKExternalProviders } from "../domain/types/wallets";
import type { ThemeWrapperTheme } from "./theme-wrapper";
import type { Properties, TrackEventVal, TrackPageVal } from "./tracking";
import type { BuildWagmiConfig } from "./wagmi";
export type VariantProps = {
    variant: "zerion";
    chainModal: (args: {
        selectedChainId: number;
        chainIds: number[];
        onSwitchChain: (chainId: number) => void;
    }) => ReactNode;
} | {
    variant: "utila";
} | {
    variant: "default";
};
export type SettingsProps = {
    apiKey: string;
    theme?: ThemeWrapperTheme;
    referralCheck?: boolean;
    tracking?: {
        trackEvent?: (event: TrackEventVal, properties?: Properties) => void;
        trackPageView?: (page: TrackPageVal, properties?: Properties) => void;
    };
    onMountAnimationComplete?: () => void;
    wagmi?: {
        forceWalletConnectOnly?: boolean;
        __customConnectors__?: Parameters<BuildWagmiConfig>[0]["customConnectors"];
    };
    externalProviders?: SKExternalProviders;
    disableGasCheck?: boolean;
    hideNetworkLogo?: boolean;
    disableInitLayoutAnimation?: boolean;
    disableResizingInputFontSize?: boolean;
    disableAutoScrollToTop?: boolean;
    language?: Languages;
    isSafe?: boolean;
    disableInjectedProviderDiscovery?: boolean;
    mapWalletFn?: Parameters<BuildWagmiConfig>[0]["mapWalletFn"];
    customTranslations?: RecursivePartial<typeof localResources>;
    tokensForEnabledYieldsOnly?: boolean;
    preferredTransactionFormat?: TransactionFormat;
    hideChainModal?: boolean;
    whitelistedValidatorAddresses?: string[];
    tokenIconMapping?: Record<TokenDto["symbol"], string> | ((token: TokenDto) => string);
    chainIconMapping?: Record<SupportedSKChains, string> | ((chain: SupportedSKChains) => string);
    showUSDeBanner?: boolean;
};
export type SettingsContextType = SettingsProps & VariantProps;
export declare const SettingsContextProvider: ({ children, ...rest }: PropsWithChildren<SettingsContextType>) => import("react/jsx-runtime").JSX.Element;
export declare const useSettings: () => SettingsContextType;
