import { type AbiEventName, type AbiFunctionName, type Address, type DecodeEventParams, type DecodeTransactionParams, type DecodedAbiFunctionInputs, type DecodedEvent, type DecodedTransaction, type DelayedMessageExecution, type FullContractState, type ProviderRpcClient, type SendInternalParams, type Transaction } from 'everscale-inpage-provider';
import { type TvmSolEventConfigurationAbi } from '../../models/tvm-sol-event-configuration/abi';
export interface TvmSolEventConfigurationDeployEventAbiParams {
    eventVoteData: DecodedAbiFunctionInputs<typeof TvmSolEventConfigurationAbi, 'deployEvent'>['eventVoteData'];
}
export interface TvmSolEventConfigurationDeriveEventAddressAbiParams {
    eventVoteData: DecodedAbiFunctionInputs<typeof TvmSolEventConfigurationAbi, 'deriveEventAddress'>['eventVoteData'];
}
export interface TvmSolEventConfigurationDetails {
    basicConfiguration: {
        eventABI: string;
        eventCode: string;
        eventInitialBalance: string;
        staking: Address;
    };
    meta: string;
    networkConfiguration: {
        program: string;
        endTimestamp: string;
        eventEmitter: Address;
        executeNeeded: boolean;
        executeInstruction: string;
        executePayloadInstruction: string;
        instruction: string;
        startTimestamp: string;
    };
}
export type TvmSolEventConfigurationDecodedEvent = DecodedEvent<typeof TvmSolEventConfigurationAbi, AbiEventName<typeof TvmSolEventConfigurationAbi>>;
export type TvmSolEventConfigurationDecodedTransaction = DecodedTransaction<typeof TvmSolEventConfigurationAbi, AbiFunctionName<typeof TvmSolEventConfigurationAbi>>;
export declare abstract class TvmSolEventConfigurationUtils {
    static deployEvent(provider: ProviderRpcClient, eventConfigurationAddress: Address | string, params: TvmSolEventConfigurationDeployEventAbiParams, args: Pick<SendInternalParams, 'from'> & Omit<Partial<SendInternalParams>, 'from'>): Promise<DelayedMessageExecution>;
    static deriveEventAddress(connection: ProviderRpcClient, eventConfigurationAddress: Address | string, params: TvmSolEventConfigurationDeriveEventAddressAbiParams, cachedState?: FullContractState): Promise<Address>;
    static getDetails(connection: ProviderRpcClient, eventConfigurationAddress: Address | string, cachedState?: FullContractState): Promise<TvmSolEventConfigurationDetails>;
    static getFlags(connection: ProviderRpcClient, eventConfigurationAddress: Address | string, cachedState?: FullContractState): Promise<string | undefined>;
    static decodeEvent(connection: ProviderRpcClient, eventConfigurationAddress: Address | string, args: DecodeEventParams<typeof TvmSolEventConfigurationAbi>): Promise<TvmSolEventConfigurationDecodedEvent | undefined>;
    static decodeTransaction(connection: ProviderRpcClient, eventConfigurationAddress: Address | string, args: DecodeTransactionParams<typeof TvmSolEventConfigurationAbi>): Promise<TvmSolEventConfigurationDecodedTransaction | undefined>;
    static decodeTransactionEvents(connection: ProviderRpcClient, eventConfigurationAddress: Address | string, transaction: Transaction): Promise<TvmSolEventConfigurationDecodedEvent[]>;
}
