import { HandleInterval, MoveAccountFetchConfig, MoveFetchConfig } from '@sentio/protos'; import { ListStateStorage } from '@sentio/runtime'; import { SuiAddressContext, SuiContext, SuiObjectContext } from './context.js'; import { SuiMoveObject, SuiTransactionBlockResponse } from '@mysten/sui/client'; import { PromiseOrVoid } from '../core/index.js'; import { SuiAddressProcessor, SuiBaseObjectOrAddressProcessor, SuiObjectBindOptions, SuiObjectProcessor, SuiWrappedObjectProcessor } from './sui-object-processor.js'; import { SuiBindOptions } from './sui-processor.js'; import { TransactionFilter } from '../move/index.js'; declare class ObjectHandler { type?: string; checkpointInterval?: HandleInterval; timeIntervalInMinutes?: HandleInterval; handlerName: string; handler: HandlerType; fetchConfig: MoveAccountFetchConfig; } export declare class SuiAccountProcessorTemplateState extends ListStateStorage> { static INSTANCE: SuiAccountProcessorTemplateState; } export declare abstract class SuiObjectOrAddressProcessorTemplate> { id: number; objectHandlers: ObjectHandler[]; binds: Set; constructor(); protected abstract createProcessor(options: SuiObjectBindOptions | SuiBindOptions): ProcessorType; bind(options: OptionType, ctx: SuiContext): void; unbind(options: OptionType, ctx: SuiContext): void; protected onInterval(handler: HandlerType, timeInterval: HandleInterval | undefined, checkpointInterval: HandleInterval | undefined, type: string | undefined, fetchConfig: Partial | undefined): this; onTimeInterval(handler: HandlerType, timeIntervalInMinutes?: number, backfillTimeIntervalInMinutes?: number, type?: string, fetchConfig?: Partial): this; onCheckpointInterval(handler: HandlerType, checkpointInterval?: number, backfillCheckpointInterval?: number, type?: string, fetchConfig?: Partial): this; } export declare class SuiAddressProcessorTemplate extends SuiObjectOrAddressProcessorTemplate<(objects: SuiMoveObject[], ctx: SuiAddressContext) => PromiseOrVoid, SuiBindOptions, SuiAddressProcessor> { private handlers; createProcessor(options: SuiBindOptions): SuiAddressProcessor; onTransactionBlock(handler: (transaction: SuiTransactionBlockResponse, ctx: SuiContext) => void, filter?: TransactionFilter, fetchConfig?: Partial): this; } export declare class SuiObjectProcessorTemplate extends SuiObjectOrAddressProcessorTemplate<(self: SuiMoveObject, dynamicFieldObjects: SuiMoveObject[], ctx: SuiObjectContext) => PromiseOrVoid, SuiObjectBindOptions, SuiObjectProcessor> { createProcessor(options: SuiObjectBindOptions): SuiObjectProcessor; } export declare class SuiWrappedObjectProcessorTemplate extends SuiObjectOrAddressProcessorTemplate<(dynamicFieldObjects: SuiMoveObject[], ctx: SuiObjectContext) => PromiseOrVoid, SuiObjectBindOptions, SuiWrappedObjectProcessor> { createProcessor(options: SuiObjectBindOptions): SuiWrappedObjectProcessor; } export {}; //# sourceMappingURL=sui-object-processor-template.d.ts.map