import { type AbiEventName, type AbiFunctionName, type Address, type DecodedEvent, type DecodedTransaction, type DecodeEventParams, type DecodeTransactionParams, type FullContractState, type ProviderRpcClient, type Transaction } from 'everscale-inpage-provider';
import { type TonEvmBaseEventAbi } from '../../models/ton-evm-base-event/abi';
export interface TonEvmBaseEventVoteData {
    eventData: string;
    eventTimestamp: number;
    eventTransactionLt: string;
}
export interface TonEvmBaseEventInitData {
    configuration: Address;
    roundDeployer: Address;
    voteData: TonEvmBaseEventVoteData;
}
export declare enum TonEvmBaseEventStatus {
    Initializing = "0",
    Pending = "1",
    Confirmed = "2",
    Rejected = "3",
    Cancelled = "4",
    LimitReached = "5",
    LiquidityRequested = "6",
    LiquidityProvided = "7",
    Verified = "8"
}
export interface TonEvmBaseEventDetails {
    balance: string;
    confirms: string[];
    empty: string[];
    eventInitData: TonEvmBaseEventInitData;
    initializer: Address;
    meta: string;
    rejects: string[];
    requiredVotes: number;
    signatures: string[];
    status: TonEvmBaseEventStatus;
}
export type TonEvmBaseEventDecodedEvent = DecodedEvent<typeof TonEvmBaseEventAbi, AbiEventName<typeof TonEvmBaseEventAbi>>;
export type TonEvmBaseEventDecodedTransaction = DecodedTransaction<typeof TonEvmBaseEventAbi, AbiFunctionName<typeof TonEvmBaseEventAbi>>;
export declare abstract class TonEvmBaseEventUtils {
    static getDetails(connection: ProviderRpcClient, eventAddress: Address | string, cachedState?: FullContractState): Promise<TonEvmBaseEventDetails>;
    static getEventInitData(connection: ProviderRpcClient, eventAddress: Address | string, cachedState?: FullContractState): Promise<TonEvmBaseEventInitData>;
    static relayRound(connection: ProviderRpcClient, eventAddress: Address | string, cachedState?: FullContractState): Promise<Address>;
    static roundNumber(connection: ProviderRpcClient, eventAddress: Address | string, cachedState?: FullContractState): Promise<number>;
    static decodeEvent(connection: ProviderRpcClient, eventAddress: Address | string, args: DecodeEventParams<typeof TonEvmBaseEventAbi>): Promise<TonEvmBaseEventDecodedEvent | undefined>;
    static decodeTransaction(connection: ProviderRpcClient, eventAddress: Address | string, args: DecodeTransactionParams<typeof TonEvmBaseEventAbi>): Promise<TonEvmBaseEventDecodedTransaction | undefined>;
    static decodeTransactionEvents(connection: ProviderRpcClient, eventAddress: Address | string, transaction: Transaction): Promise<TonEvmBaseEventDecodedEvent[]>;
}
