import { type AbiEventName, type AbiFunctionName, type Address, type DecodedAbiFunctionOutputs, type DecodedEvent, type DecodedTransaction, type DecodeEventParams, type DecodeTransactionParams, type DelayedMessageExecution, type FullContractState, type ProviderRpcClient, type SendInternalParams, type Transaction } from 'everscale-inpage-provider';
import { type NativeProxyV8Abi } from '../../models/native-proxy/abi';
export interface NativeProxyV8DeployTokenFeeAbiParams {
    remainingGasTo: Address | string;
    tokenAddress: Address | string;
}
export interface NativeProxyV8DailyLimits {
    dailyIncomingVolume: string;
    dailyOutgoingVolume: string;
    dayStartTimestamp: number;
    incomingLimit: string | null;
    outgoingLimit: string | null;
}
export type NativeProxyV8TvmDefaultFee = DecodedAbiFunctionOutputs<typeof NativeProxyV8Abi, 'getTvmDefaultFee'>;
export type NativeProxyV8TvmTokenFee = DecodedAbiFunctionOutputs<typeof NativeProxyV8Abi, 'getTvmTokenFee'>;
export type NativeProxyV8TvmFees = Map<string, {
    incoming: string;
    outgoing: string;
}>;
export type NativeProxyV8Configurations = DecodedAbiFunctionOutputs<typeof NativeProxyV8Abi, 'getConfiguration'>;
export type NativeProxyV8DecodedEvent = DecodedEvent<typeof NativeProxyV8Abi, AbiEventName<typeof NativeProxyV8Abi>>;
export type NativeProxyV8DecodedTransaction = DecodedTransaction<typeof NativeProxyV8Abi, AbiFunctionName<typeof NativeProxyV8Abi>>;
export declare abstract class NativeProxyV8Utils {
    static deployTokenFee(provider: ProviderRpcClient, proxyAddress: Address | string, params: NativeProxyV8DeployTokenFeeAbiParams, args?: Partial<SendInternalParams>): Promise<DelayedMessageExecution>;
    static getExpectedTokenFeeAddress(connection: ProviderRpcClient, proxyAddress: Address | string, tokenAddress: Address | string, cachedState?: FullContractState): Promise<Address>;
    static getDailyLimits(connection: ProviderRpcClient, proxyAddress: Address | string, tokenAddress: Address | string, cachedState?: FullContractState): Promise<NativeProxyV8DailyLimits>;
    static getTvmDefaultFee(connection: ProviderRpcClient, proxyAddress: Address | string, cachedState?: FullContractState): Promise<NativeProxyV8TvmDefaultFee>;
    static getTvmFees(connection: ProviderRpcClient, proxyAddress: Address | string, cachedState?: FullContractState): Promise<NativeProxyV8TvmFees>;
    static getTvmTokenFee(connection: ProviderRpcClient, proxyAddress: Address | string, tokenAddress: Address | string, cachedState?: FullContractState): Promise<NativeProxyV8TvmTokenFee>;
    static getConfiguration(connection: ProviderRpcClient, proxyAddress: Address | string, cachedState?: FullContractState): Promise<NativeProxyV8Configurations>;
    static getTvmEvmConfiguration(connection: ProviderRpcClient, proxyAddress: Address | string, cachedState?: FullContractState): Promise<Address>;
    static getSolTvmConfiguration(connection: ProviderRpcClient, proxyAddress: Address | string, cachedState?: FullContractState): Promise<Address>;
    static getTvmSolConfiguration(connection: ProviderRpcClient, proxyAddress: Address | string, cachedState?: FullContractState): Promise<Address>;
    static getDexMiddleware(connection: ProviderRpcClient, proxyAddress: Address | string, cachedState?: FullContractState): Promise<Address>;
    static decodeEvent(connection: ProviderRpcClient, eventConfigurationAddress: Address | string, args: DecodeEventParams<typeof NativeProxyV8Abi>): Promise<NativeProxyV8DecodedEvent | undefined>;
    static decodeTransaction(connection: ProviderRpcClient, eventConfigurationAddress: Address | string, args: DecodeTransactionParams<typeof NativeProxyV8Abi>): Promise<NativeProxyV8DecodedTransaction | undefined>;
    static decodeTransactionEvents(connection: ProviderRpcClient, eventConfigurationAddress: Address | string, transaction: Transaction): Promise<NativeProxyV8DecodedEvent[]>;
}
