// TODO extends ArgumentsFilter import { Data_AptCall, Data_AptResource, HandleInterval, MoveAccountFetchConfig, MoveFetchConfig, ProcessResult } from '@sentio/protos' export interface EventFilter { type: string account?: string eventAccount?: string } export interface FunctionNameAndCallFilter extends CallFilter { function: string } export interface TransactionFilter { includeFailed?: boolean publicKeyPrefix?: string fromAndToAddress?: { from: string; to: string } } // TODO extends ArgumentsFilter export interface CallFilter extends TransactionFilter { typeArguments?: string[] } export interface ArgumentsFilter { arguments?: string[] } export class EventHandler { filters: EventFilter[] handlerName: string handler: (event: T) => Promise fetchConfig: MoveFetchConfig partitionHandler?: (event: T) => Promise } export class CallHandler { filters: FunctionNameAndCallFilter[] handlerName: string handler: (call: T) => Promise fetchConfig: MoveFetchConfig partitionHandler?: (call: T) => Promise } export class ObjectChangeHandler { handlerName: string handler: (call: T) => Promise type: string } export class ResourceChangeHandler { handlerName: string handler: (call: T) => Promise type: string partitionHandler?: (call: T) => Promise } export class ResourceIntervalHandler { type?: string versionInterval?: HandleInterval timeIntervalInMinutes?: HandleInterval handler: (resource: Data_AptResource) => Promise handlerName: string fetchConfig: MoveAccountFetchConfig partitionHandler?: (resource: Data_AptResource) => Promise } export class TransactionIntervalHandler { versionInterval?: HandleInterval timeIntervalInMinutes?: HandleInterval handler: (tx: Data_AptCall) => Promise handlerName: string fetchConfig: MoveFetchConfig partitionHandler?: (tx: Data_AptCall) => Promise }