import { Subscribable } from "./subscribable"; export type HookTap = (i: I, entity: E) => O; export interface IBaklavaTapable { hooks: Record>>; } /** Similar to the SequentialHook, but allows to pass a different entity for each execute call */ export declare class DynamicSequentialHook extends Subscribable> { execute(data: I, entity: E): O; } /** This class will run the taps one after each other and pass the data from every subscriber to another. */ export declare class SequentialHook extends DynamicSequentialHook { protected readonly entity: E; constructor(entity: E); execute(data: I): O; } export declare class ParallelHook extends Subscribable> { protected readonly entity: E; constructor(entity: E); execute(data: I): O[]; }