import { default as React, ReactNode } from 'react';
import { SupportedLocale } from './LocalizationProvider';

export interface Token {
    address: string;
    chainId: number;
    decimals: number;
    logoURI: string;
    name: string;
    symbol: string;
    amount?: number;
    balance?: string;
    balanceInUsd?: number;
    tags?: string[];
}
export interface Theme {
    /**
     * @default 420
     */
    width?: "full" | number;
    /**
     * @default "base"
     */
    borderRadius?: "none" | "sm" | "base" | "md" | "lg";
    fonts?: {
        primary?: string;
        secondary?: string;
    };
    /**
     * Supports hex and rgb format
     *
     * #FFFFFF or rgb(255, 255, 255)
     */
    colors?: {
        bgLayer1?: string;
        bgLayer2?: string;
        bgLayer3?: string;
        textPrimary?: string;
        textSecondary?: string;
        themePrimary?: string;
        border?: string;
        icon?: string;
        accent?: string;
        accentBg?: string;
        accent2?: string;
        accentBg2?: string;
        success?: string;
    };
}
export interface BungeeConfig {
    apiKey: string;
    initialValues?: {
        fromChain?: number;
        inputTokens?: string[];
        toChain?: number;
        outputTokens?: string[];
        amount?: string[];
        outputRatio?: number[];
        locale?: SupportedLocale;
        sortPreference?: "fast" | "best";
        swapSlippage?: number;
    };
    features?: {
        autoRouting?: boolean;
        refuel?: boolean;
        internalTxHistory?: boolean;
    };
    includeDexes?: string[];
    excludeDexes?: string[];
    includeBridges?: string[];
    excludeBridges?: string[];
    /** Supported tokens - pass the token addresses */
    supportedTokens?: {
        from?: {
            [chainId: string]: string[];
        };
        to?: {
            [chainId: string]: string[];
        };
    };
    supportedChains?: {
        from?: number[];
        to?: number[];
    };
    feeParams?: {
        feeTakerAddress?: string;
        feePercent?: number;
    };
    destinationPayload?: string;
    theme?: Theme;
    openTxItem?: number;
    removeBranding?: boolean;
    baseUrl?: string;
    maxCap?: number;
}
export declare const WidgetConfigContext: React.Context<BungeeConfig | null>;
export declare const ConfigProvider: ({ children, config, }: {
    children: ReactNode;
    config: BungeeConfig | null;
}) => import("react/jsx-runtime").JSX.Element;
