import { IMessageBusTopicSubscription } from "@omnia/fx-models"; export interface IVersionPropertyBag { /** * Returns the value of the key, or null if it does not exist. * */ getValue: (key: string) => T; /** * Get the value of the specified key if the value does not exists, it uses the supplied factory to create and set the value * */ getOrSetInitialValue: (key: string, initialValueFactory: () => T) => T; /** * Changes the value of the key * */ setValue: (key: string, value: any) => void; /** * All keys * */ readonly keys: Array; /** * Subsctiption on property updated * */ readonly onPropertyUpdated: IMessageBusTopicSubscription<{ key: string; value: any; }>; }