import { type EitherAnd, NamespacedValue, UnstableValue } from "matrix-events-sdk"; /** * Represents the stable and unstable values of a given namespace. */ export type TSNamespace = N extends NamespacedValue ? TSNamespaceValue | TSNamespaceValue : never; /** * Represents a namespaced value, if the value is a string. Used to extract provided types * from a TSNamespace (in cases where only stable *or* unstable is provided). */ export type TSNamespaceValue = V extends string ? V : never; /** * Creates a type which is V when T is `never`, otherwise T. */ export type DefaultNever = [T] extends [never] ? V : T; /** * The namespaced value for m.message */ export declare const M_MESSAGE: UnstableValue<"m.message", "org.matrix.msc1767.message">; /** * An m.message event rendering */ export interface IMessageRendering { body: string; mimetype?: string; } /** * The content for an m.message event */ export type ExtensibleMessageEventContent = EitherAnd<{ [M_MESSAGE.name]: IMessageRendering[]; }, { [M_MESSAGE.altName]: IMessageRendering[]; }>; /** * The namespaced value for m.text */ export declare const M_TEXT: UnstableValue<"m.text", "org.matrix.msc1767.text">; /** * The content for an m.text event */ export type TextEventContent = EitherAnd<{ [M_TEXT.name]: string; }, { [M_TEXT.altName]: string; }>; /** * The namespaced value for m.html */ export declare const M_HTML: UnstableValue<"m.html", "org.matrix.msc1767.html">; /** * The content for an m.html event */ export type HtmlEventContent = EitherAnd<{ [M_HTML.name]: string; }, { [M_HTML.altName]: string; }>; /** * The content for an m.message, m.text, or m.html event */ export type ExtensibleAnyMessageEventContent = ExtensibleMessageEventContent | TextEventContent | HtmlEventContent; /** * The namespaced value for an m.reference relation */ export declare const REFERENCE_RELATION: NamespacedValue<"m.reference", string>; /** * Represents any relation type */ export type AnyRelation = TSNamespace | string; /** * An m.relates_to relationship */ export type RelatesToRelationship = { "m.relates_to": { rel_type: [R] extends [never] ? AnyRelation : TSNamespace; event_id: string; }; }; /** * Partial types for a Matrix Event. */ export interface IPartialEvent { type: string; content: TContent; } /** * Represents a potentially namespaced event type. */ export type ExtensibleEventType = NamespacedValue | string; /** * Determines if two event types are the same, including namespaces. * @param given - The given event type. This will be compared * against the expected type. * @param expected - The expected event type. * @returns True if the given type matches the expected type. */ export declare function isEventTypeSame(given: ExtensibleEventType | null, expected: ExtensibleEventType | null): boolean; //# sourceMappingURL=extensible_events.d.ts.map