import { type AbiEventName, type AbiFunctionName, type Address, type DecodeEventParams, type DecodeTransactionParams, type DecodedAbiFunctionInputs, type DecodedAbiFunctionOutputs, type DecodedEvent, type DecodedTransaction, type DelayedMessageExecution, type FullContractState, type ProviderRpcClient, type SendInternalParams, type Transaction } from 'everscale-inpage-provider';
import { type EvmTonEventConfigurationAbi } from '../../models/evm-ton-event-configuration/abi';
export interface EvmTonEventConfigurationDeployEventAbiParams {
    eventVoteData: DecodedAbiFunctionInputs<typeof EvmTonEventConfigurationAbi, 'deployEvent'>['eventVoteData'];
}
export interface EvmTonEventConfigurationDeriveEventAddressAbiParams {
    eventVoteData: DecodedAbiFunctionInputs<typeof EvmTonEventConfigurationAbi, 'deriveEventAddress'>['eventVoteData'];
}
export interface EvmTonEventConfigurationDetails {
    basicConfiguration: DecodedAbiFunctionOutputs<typeof EvmTonEventConfigurationAbi, 'getDetails'>['_basicConfiguration'];
    meta: DecodedAbiFunctionOutputs<typeof EvmTonEventConfigurationAbi, 'getDetails'>['_meta'];
    networkConfiguration: {
        chainId: DecodedAbiFunctionOutputs<typeof EvmTonEventConfigurationAbi, 'getDetails'>['_networkConfiguration']['chainId'];
        endBlockNumber: number;
        eventBlocksToConfirm: number;
        eventEmitter: DecodedAbiFunctionOutputs<typeof EvmTonEventConfigurationAbi, 'getDetails'>['_networkConfiguration']['eventEmitter'];
        proxy: DecodedAbiFunctionOutputs<typeof EvmTonEventConfigurationAbi, 'getDetails'>['_networkConfiguration']['proxy'];
        startBlockNumber: number;
    };
}
export type EvmTonEventConfigurationDecodedEvent = DecodedEvent<typeof EvmTonEventConfigurationAbi, AbiEventName<typeof EvmTonEventConfigurationAbi>>;
export type EvmTonEventConfigurationDecodedTransaction = DecodedTransaction<typeof EvmTonEventConfigurationAbi, AbiFunctionName<typeof EvmTonEventConfigurationAbi>>;
export declare abstract class EvmTonEventConfigurationUtils {
    static deployEvent(provider: ProviderRpcClient, eventConfigurationAddress: Address | string, params: EvmTonEventConfigurationDeployEventAbiParams, args: Pick<SendInternalParams, 'from'> & Omit<Partial<SendInternalParams>, 'from'>): Promise<DelayedMessageExecution>;
    static deriveEventAddress(connection: ProviderRpcClient, eventConfigurationAddress: Address | string, params: EvmTonEventConfigurationDeriveEventAddressAbiParams, cachedState?: FullContractState): Promise<Address>;
    static getDetails(connection: ProviderRpcClient, eventConfigurationAddress: Address | string, cachedState?: FullContractState): Promise<EvmTonEventConfigurationDetails>;
    static getFlags(connection: ProviderRpcClient, eventConfigurationAddress: Address | string, cachedState?: FullContractState): Promise<string>;
    static decodeEvent(connection: ProviderRpcClient, eventConfigurationAddress: Address | string, args: DecodeEventParams<typeof EvmTonEventConfigurationAbi>): Promise<EvmTonEventConfigurationDecodedEvent | undefined>;
    static decodeTransaction(connection: ProviderRpcClient, eventConfigurationAddress: Address | string, args: DecodeTransactionParams<typeof EvmTonEventConfigurationAbi>): Promise<EvmTonEventConfigurationDecodedTransaction | undefined>;
    static decodeTransactionEvents(connection: ProviderRpcClient, eventConfigurationAddress: Address | string, transaction: Transaction): Promise<EvmTonEventConfigurationDecodedEvent[]>;
}
