import { TransactionSigner } from "@solana/kit";
import { SVMProvider } from "../../arch/svm";
import { RelayData } from "../../interfaces";
import { Address, BigNumber, BigNumberish, SvmAddress, TransactionCostEstimate } from "../../utils";
import { Logger, QueryInterface } from "../relayFeeCalculator";
import { SymbolMappingType } from "./";
export declare class SvmQuery implements QueryInterface {
    readonly provider: SVMProvider;
    readonly symbolMapping: SymbolMappingType;
    readonly spokePool: SvmAddress;
    readonly simulatedRelayerAddress: SvmAddress;
    readonly logger: Logger;
    readonly coingeckoProApiKey?: string | undefined;
    readonly fixedGasPrice?: BigNumberish | undefined;
    readonly coingeckoBaseCurrency: string;
    protected computeUnitEstimator: (transactionMessage: import("@solana/kit").CompilableTransactionMessage | (import("@solana/kit").ITransactionMessageWithFeePayer<string> & import("@solana/kit").TransactionMessage), config?: Omit<Readonly<{
        abortSignal?: AbortSignal | undefined;
        commitment?: import("@solana/kit").Commitment | undefined;
        minContextSlot?: bigint | undefined;
        rpc: import("@solana/kit").Rpc<import("@solana/kit").SimulateTransactionApi>;
        transactionMessage: import("@solana/kit").CompilableTransactionMessage | (import("@solana/kit").ITransactionMessageWithFeePayer<string> & import("@solana/kit").TransactionMessage);
    }>, "rpc" | "transactionMessage"> | undefined) => Promise<number>;
    constructor(provider: SVMProvider, symbolMapping: SymbolMappingType, spokePool: SvmAddress, simulatedRelayerAddress: SvmAddress, logger: Logger, coingeckoProApiKey?: string | undefined, fixedGasPrice?: BigNumberish | undefined, coingeckoBaseCurrency?: string);
    getGasCosts(relayData: RelayData & {
        destinationChainId: number;
    }, relayer?: Address, options?: Partial<{
        gasPrice: BigNumberish;
        gasUnits: BigNumberish;
        baseFeeMultiplier: BigNumber;
        priorityFeeMultiplier: BigNumber;
    }>): Promise<TransactionCostEstimate>;
    getNativeGasCost(deposit: RelayData & {
        destinationChainId: number;
    }, relayer?: Address): Promise<BigNumber>;
    protected getFillRelayTx(relayData: Omit<RelayData, "recipient" | "outputToken"> & {
        destinationChainId: number;
        recipient: SvmAddress;
        outputToken: SvmAddress;
    }, signer: TransactionSigner, repaymentChainId: number, repaymentAddress: Address): Promise<import("@solana/kit").TransactionMessageWithBlockhashLifetime & import("@solana/kit").ITransactionMessageWithFeePayerSigner<string, TransactionSigner<string>> & Omit<Readonly<{
        instructions: readonly import("@solana/kit").IInstruction<string, readonly (import("@solana/kit").IAccountMeta<string> | import("@solana/kit").IAccountLookupMeta<string, string>)[]>[];
        version: 0;
    }>, "feePayer">>;
    getTokenPrice(tokenSymbol: string): Promise<number>;
    getTokenDecimals(tokenSymbol: string): number;
}
