import { type Expr, type IInst } from '.';
/**
 * Events found through `LOG` instructions.
 *
 * The `topic` is represented as a hex string.
 */
export interface IEvents {
    [topic: string]: {
        /**
         * The signature of the event when the `topic` selector is found.
         *
         * For instance, if the topic is
         * `4d6ce1e535dbade1c23defba91e23b8f791ce5edc0cc320257a2b364e4e38426`,
         * then `sig` will be `Deposit(uint256)`.
         */
        sig?: string;
        indexedCount: number;
    };
}
/**
 * Represents a `LOGn` instruction, or in Solidity terms, an `emit` statement.
 *
 * https://docs.soliditylang.org/en/latest/contracts.html#events
 */
export declare class Log implements IInst {
    readonly event: IEvents[string] | undefined;
    readonly offset: Expr;
    readonly size: Expr;
    readonly topics: Expr[];
    readonly args?: Expr[] | undefined;
    readonly name = "Log";
    constructor(event: IEvents[string] | undefined, offset: Expr, size: Expr, topics: Expr[], args?: Expr[] | undefined);
    get eventName(): string | undefined;
    eval(): Log;
}
