import { StoreGroupLike } from "../UILayer/StoreGroupLike" ; import { StoreLike } from "../StoreLike" ; import { UseCaseLike } from "../UseCaseLike" ; import { Transaction } from "../DispatcherPayloadMeta" ; export type DebugId = string ; export type MarkType = "StoreGroup#read" | "StoreGroup#write" | "Store#getState" | "Store#receivePayload" | "UserCase#execute" | "UserCase#complete" | "Transaction" ; export abstract class AlminPerfMarkerAbstract { abstract beginProfile ( ) ; abstract get isProfiling ( ) : boolean ; abstract endProfile ( ) ; abstract shouldMark ( debugId ) ; abstract beforeStoreGroupReadPhase ( debugId , storeGroup ) ; abstract afterStoreGroupReadPhase ( debugId , storeGroup ) ; abstract beforeStoreGroupWritePhase ( debugId , storeGroup ) ; abstract afterStoreGroupWritePhase ( debugId , storeGroup ) ; abstract beforeStoreGetState ( debugId , store ) ; abstract afterStoreGetState ( debugId , store ) ; abstract beforeStoreReceivePayload ( debugId , store ) ; abstract afterStoreReceivePayload ( debugId , store ) ; abstract willUseCaseExecute ( debugId , useCase ) ; abstract didUseCaseExecute ( debugId , useCase ) ; abstract completeUseCaseExecute ( debugId , useCase ) ; abstract beginTransaction ( debugId , transaction ) ; abstract endTransaction ( debugId , transaction ) ; }