import * as common from '@protocolink/common'; import * as core from '@protocolink/core'; export type SwapTokenLogicTokenList = common.Token[]; export type SwapTokenLogicParams = core.TokenToTokenExactInParams<{ apiKey: string; slippage?: number; excludedSources?: string[]; includedSources?: string[]; takerAddress?: string; }>; export type SwapTokenLogicFields = core.TokenToTokenExactInFields<{ apiKey: string; slippage?: number; excludedSources?: string[]; includedSources?: string[]; }>; export type ZeroExQuote = { buyAmount: string; data: string; to: string; allowanceTarget: string; }; export type SwapTokenLogicOptions = Pick; export declare class SwapTokenLogic extends core.Logic implements core.LogicTokenListInterface, core.LogicOracleInterface, core.LogicBuilderInterface { static id: string; static protocolId: string; static readonly supportedChainIds: number[]; getTokenList(): Promise; getAPIBaseUrl(chainId: number): "https://api.0x.org/" | "https://optimism.api.0x.org/" | "https://polygon.api.0x.org/" | "https://base.api.0x.org/" | "https://arbitrum.api.0x.org/" | "https://avalanche.api.0x.org/"; getAPIHeaders(apiKey: string): { '0x-api-key': string; }; quote(params: SwapTokenLogicParams): Promise<{ input: common.TokenAmount; output: common.TokenAmount; slippage: number | undefined; excludedSources: string[] | undefined; includedSources: string[] | undefined; apiKey: string; }>; build(fields: SwapTokenLogicFields, { account }: SwapTokenLogicOptions): Promise<{ to: string; data: string; inputs: core.DataType.InputStruct[]; wrapMode: number; approveTo: string; callback: string; }>; }