import { IPartialEvent } from "./IPartialEvent"; import { ExtensibleEvent } from "./events/ExtensibleEvent"; import { Optional } from "./types"; import { NamespacedValue } from "./NamespacedValue"; export declare type EventInterpreter<TContentIn = object, TEvent extends ExtensibleEvent = ExtensibleEvent> = (wireEvent: IPartialEvent<TContentIn>) => Optional<TEvent>; /** * Utility class for parsing and identifying event types in a renderable form. An * instance of this class can be created to change rendering preference depending * on use-case. */ export declare class ExtensibleEvents { private static _defaultInstance; private interpreters; private _unknownInterpretOrder; constructor(); /** * Gets the default instance for all extensible event parsing. */ static get defaultInstance(): ExtensibleEvents; /** * Gets the order the internal processor will use for unknown primary * event types. */ get unknownInterpretOrder(): NamespacedValue<string, string>[]; /** * Sets the order the internal processor will use for unknown primary * event types. * @param {NamespacedValue<string, string>[]} val The parsing order. */ set unknownInterpretOrder(val: NamespacedValue<string, string>[]); /** * Gets the order the internal processor will use for unknown primary * event types. */ static get unknownInterpretOrder(): NamespacedValue<string, string>[]; /** * Sets the order the internal processor will use for unknown primary * event types. * @param {NamespacedValue<string, string>[]} val The parsing order. */ static set unknownInterpretOrder(val: NamespacedValue<string, string>[]); /** * Registers a primary event type interpreter. Note that the interpreter might be * called with non-primary events if the event is being parsed as a fallback. * @param {NamespacedValue<string, string>} wireEventType The event type. * @param {EventInterpreter} interpreter The interpreter. */ registerInterpreter(wireEventType: NamespacedValue<string, string>, interpreter: EventInterpreter): void; /** * Registers a primary event type interpreter. Note that the interpreter might be * called with non-primary events if the event is being parsed as a fallback. * @param {NamespacedValue<string, string>} wireEventType The event type. * @param {EventInterpreter} interpreter The interpreter. */ static registerInterpreter(wireEventType: NamespacedValue<string, string>, interpreter: EventInterpreter): void; /** * Parses an event, trying the primary event type first. If the primary type is not known * then the content will be inspected to find the most suitable fallback. * * If the parsing failed or was a completely unknown type, this will return falsy. * @param {IPartialEvent<object>} wireFormat The event to parse. * @returns {Optional<ExtensibleEvent>} The parsed extensible event. */ parse(wireFormat: IPartialEvent<object>): Optional<ExtensibleEvent>; /** * Parses an event, trying the primary event type first. If the primary type is not known * then the content will be inspected to find the most suitable fallback. * * If the parsing failed or was a completely unknown type, this will return falsy. * @param {IPartialEvent<object>} wireFormat The event to parse. * @returns {Optional<ExtensibleEvent>} The parsed extensible event. */ static parse(wireFormat: IPartialEvent<object>): Optional<ExtensibleEvent>; }