import { ethers } from 'ethers';
import { RoutingParams, SplitRoute, RoutingResult } from './types';
export declare class SmartOrderRouter {
    private provider;
    private wallet;
    private quoterContracts;
    constructor(provider: ethers.Provider, wallet: ethers.Wallet);
    findBestRoute(params: RoutingParams): Promise<RoutingResult>;
    splitOrder(params: RoutingParams & {
        maxSplits: number;
    }): Promise<SplitRoute>;
    private getQuote;
    private getUniswapQuote;
    private get1inchQuote;
    private getParaswapQuote;
    private findBestSplitRoute;
    private getQuoterContract;
    private calculatePriceImpact;
    private calculateMinAmountOut;
    private compareRoutes;
    private compareSplitRoutes;
    private isSplitRouteBetter;
    private generateSplitRatios;
}
