import { Logger } from 'pino';
import { Address } from '@hyperlane-xyz/utils';
import { MultiProvider } from '../providers/MultiProvider.js';
import { ChainName, ChainNameOrId } from '../types.js';
import { WarpCoreConfig } from '../warp/types.js';
import { TokenType } from './config.js';
import { WarpRouteDeployConfig, XERC20TokenExtraBridgesLimits, XERC20Type } from './types.js';
type BridgeConfigBase = {
    chain: ChainName;
    type: typeof TokenType.XERC20Lockbox | typeof TokenType.XERC20;
    xERC20Address: Address;
    bridgeAddress: Address;
    decimals: number;
    owner: Address;
};
export type BridgeConfigVS = BridgeConfigBase & {
    bufferCap: number;
    rateLimitPerSecond: number;
};
export type BridgeConfigWL = BridgeConfigBase & {
    mint: number;
    burn: number;
};
export type GetExtraLockboxesOptions = {
    chain: ChainNameOrId;
    xERC20Address: Address;
    multiProvider: MultiProvider;
    explorerUrl: string;
    apiKey?: string;
    logger?: Logger;
};
export declare function getExtraLockBoxConfigs({ xERC20Address, chain, multiProvider, logger, }: Omit<GetExtraLockboxesOptions, 'explorerUrl' | 'apiKey'>): Promise<XERC20TokenExtraBridgesLimits[]>;
/**
 * Derives bridge configurations for Velodrome XERC20 tokens.
 * Extracts bufferCap and rateLimitPerSecond limits from warp deploy config.
 * @param warpDeployConfig - Warp route deployment configuration
 * @param warpCoreConfig - Warp core configuration with token metadata
 * @param multiProvider - Multi-chain provider for contract interactions
 * @returns Array of bridge configurations for Velodrome XERC20
 */
export declare function deriveBridgesConfig(warpDeployConfig: WarpRouteDeployConfig, warpCoreConfig: WarpCoreConfig, multiProvider: MultiProvider): Promise<BridgeConfigVS[]>;
/**
 * Derives bridge configurations for Standard XERC20 tokens.
 * Extracts mint and burn limits from warp deploy config.
 * @param chains - Optional list of chains to filter by
 * @param warpDeployConfig - Warp route deployment configuration
 * @param warpCoreConfig - Warp core configuration with token metadata
 * @param multiProvider - Multi-chain provider for contract interactions
 * @returns Array of bridge configurations for Standard XERC20
 */
export declare function deriveStandardBridgesConfig(chains: ChainName[] | undefined, warpDeployConfig: WarpRouteDeployConfig, warpCoreConfig: WarpCoreConfig, multiProvider: MultiProvider): Promise<BridgeConfigWL[]>;
export declare function deriveXERC20TokenType(multiProvider: MultiProvider, chain: ChainNameOrId, address: Address): Promise<XERC20Type>;
export {};
//# sourceMappingURL=xerc20.d.ts.map