import type { ReplaySubject } from 'rxjs'; import Register from './Register'; export interface Labelled { label: string; } export interface Payload { [key: string]: any; } export interface Meta { [key: string]: any; } export interface Event

extends Labelled { payload: P; meta?: M; } export interface Factory

extends Labelled { (payload: P, meta?: M): Event; is: (event: T) => event is S; registered?: boolean; } export interface WithFilePropertyMeta extends Meta { property: string | string[]; } export interface CustomActionIdMeta extends Meta { actionId: string; } export interface WithTriggeringLabelMeta extends Meta { triggeredBy: string; } export interface TransactionMeta extends Meta { transactionId: string; } export interface WithHashMeta extends Meta { hash: string; } export declare type EventBus = ReplaySubject>; export declare type FactoryOptions = { scope?: string; divider?: string; aliases?: string | string[]; }; export declare const factoryRegister: Register; export declare function factory

(label: string, options?: FactoryOptions): Factory;