import { BaseContext } from './base-context.js'; import { CoinID, EventLogConfig, EventLogConfig_BasicFieldType, EventLogConfig_Field, LogLevel } from '@sentio/protos'; import { MapStateStorage } from '@sentio/runtime'; import { BN } from 'fuels'; import { BigDecimal } from '@sentio/bigdecimal'; export interface Attribute { [key: string]: Exclude | BN | BigDecimal | undefined, Promise>; } export interface Event extends Attribute { distinctId?: string; severity?: LogLevel; message?: string; } export declare class EventLoggerState extends MapStateStorage { static INSTANCE: EventLoggerState; } export declare class EventLoggerBinding { private readonly ctx; constructor(ctx: BaseContext); emit(eventName: string, event: Event): void; } export type BasicFieldType = EventLogConfig_BasicFieldType; export declare const BasicFieldType: typeof EventLogConfig_BasicFieldType; export type FieldType = CoinID | BasicFieldType | Fields; export type Fields = { [key: string]: FieldType; }; export interface EventLogOptions { fields: Fields; } export declare function fieldsToProtos(fields: Fields): EventLogConfig_Field[]; export declare class EventLogger { private readonly eventName; config: EventLogConfig; private constructor(); static register(eventName: string, options?: EventLogOptions): EventLogger; emit(ctx: BaseContext, event: Event): void; } export declare class EventLoggerBindingNew { private readonly ctx; constructor(ctx: BaseContext); emit(eventName: string, event: Event): void; } //# sourceMappingURL=event-logger.d.ts.map