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 EvmTvmEventConfigurationAbi } from '../../models/evm-tvm-event-configuration/abi';
export interface EvmTvmEventConfigurationDeployEventAbiParams {
    eventVoteData: DecodedAbiFunctionInputs<typeof EvmTvmEventConfigurationAbi, 'deployEvent'>['eventVoteData'];
}
export interface EvmTvmEventConfigurationDeriveEventAddressAbiParams {
    eventVoteData: DecodedAbiFunctionInputs<typeof EvmTvmEventConfigurationAbi, 'deriveEventAddress'>['eventVoteData'];
}
export interface EvmTvmEventConfigurationDetails {
    basicConfiguration: DecodedAbiFunctionOutputs<typeof EvmTvmEventConfigurationAbi, 'getDetails'>['_basicConfiguration'];
    meta: DecodedAbiFunctionOutputs<typeof EvmTvmEventConfigurationAbi, 'getDetails'>['_meta'];
    networkConfiguration: {
        chainId: DecodedAbiFunctionOutputs<typeof EvmTvmEventConfigurationAbi, 'getDetails'>['_networkConfiguration']['chainId'];
        endBlockNumber: number;
        eventBlocksToConfirm: number;
        eventEmitter: DecodedAbiFunctionOutputs<typeof EvmTvmEventConfigurationAbi, 'getDetails'>['_networkConfiguration']['eventEmitter'];
        proxy: DecodedAbiFunctionOutputs<typeof EvmTvmEventConfigurationAbi, 'getDetails'>['_networkConfiguration']['proxy'];
        startBlockNumber: number;
    };
}
export type EvmTvmEventConfigurationDecodedEvent = DecodedEvent<typeof EvmTvmEventConfigurationAbi, AbiEventName<typeof EvmTvmEventConfigurationAbi>>;
export type EvmTvmEventConfigurationDecodedTransaction = DecodedTransaction<typeof EvmTvmEventConfigurationAbi, AbiFunctionName<typeof EvmTvmEventConfigurationAbi>>;
export declare abstract class EvmTvmEventConfigurationUtils {
    static deployEvent(provider: ProviderRpcClient, eventConfigurationAddress: Address | string, params: EvmTvmEventConfigurationDeployEventAbiParams, args: Pick<SendInternalParams, 'from'> & Omit<Partial<SendInternalParams>, 'from'>): Promise<DelayedMessageExecution>;
    static deriveEventAddress(connection: ProviderRpcClient, eventConfigurationAddress: Address | string, params: EvmTvmEventConfigurationDeriveEventAddressAbiParams, cachedState?: FullContractState): Promise<Address>;
    static getDetails(connection: ProviderRpcClient, eventConfigurationAddress: Address | string, cachedState?: FullContractState): Promise<EvmTvmEventConfigurationDetails>;
    static getFlags(connection: ProviderRpcClient, eventConfigurationAddress: Address | string, cachedState?: FullContractState): Promise<string>;
    static decodeEvent(connection: ProviderRpcClient, eventConfigurationAddress: Address | string, args: DecodeEventParams<typeof EvmTvmEventConfigurationAbi>): Promise<EvmTvmEventConfigurationDecodedEvent | undefined>;
    static decodeTransaction(connection: ProviderRpcClient, eventConfigurationAddress: Address | string, args: DecodeTransactionParams<typeof EvmTvmEventConfigurationAbi>): Promise<EvmTvmEventConfigurationDecodedTransaction | undefined>;
    static decodeTransactionEvents(connection: ProviderRpcClient, eventConfigurationAddress: Address | string, transaction: Transaction): Promise<EvmTvmEventConfigurationDecodedEvent[]>;
}
