import { RouteRequest } from "./route";
export type SlippageOption = RouteRequest["slippage"];
export type TokenConfig = {
    address: string;
    chainId: string;
};
export type NamedTokenConfig = {
    networkName: string;
    /**
     * When omitted, a default token will be selected automatically
     */
    symbol?: string;
};
export interface AppConfig {
    integratorId: string;
    slippage?: SlippageOption;
    /**
     * If set to true, will load initial tokens and chains from local storage
     */
    loadPreviousStateFromLocalStorage?: boolean;
    apiUrl?: string;
    priceImpactWarnings?: {
        warning: number;
        critical: number;
    };
    /**
     * The initial from and to assets when widget loads
     *
     * If {@link loadPreviousStateFromLocalStorage} is set to true, this will be ignored
     */
    initialAssets?: {
        from?: TokenConfig | NamedTokenConfig;
        to?: TokenConfig | NamedTokenConfig;
    };
    /**
     * When chains are changed, this allows to choose the first token that will be selected
     */
    defaultTokensPerChain?: TokenConfig[];
    /**
     * Allows to enable only certain chains on a specific direction.
     *
     * This setting overrides {@link disabledChains}
     */
    availableChains?: {
        source?: string[];
        destination?: string[];
    };
    /**
     * Allows to whitelist tokens on specific chains.
     */
    availableTokens?: {
        source?: Record<string, string[]>;
        destination?: Record<string, string[]>;
    };
    collectFees?: {
        integratorAddress: string;
        fee: number;
    };
    /**
     * Allows to disable chains on a specific direction.
     *
     * This setting is overridden by {@link availableChains}
     */
    disabledChains?: {
        source?: string[];
        destination?: string[];
    };
    degenMode?: boolean;
    preHook?: RouteRequest["preHook"];
    postHook?: RouteRequest["postHook"];
    /**
     * Override the default gas refund address in Axelar routes
     */
    overrideGasRefundAddress?: RouteRequest["overrideGasRefundAddress"];
}
