mirror of
https://github.com/vector-im/element-web.git
synced 2026-04-19 12:31:08 +02:00
11 KiB
11 KiB
API Report File for "@element-hq/element-web-module-api"
Do not edit this file. It is a report generated by API Extractor.
import { ComponentType } from 'react';
import { JSX } from 'react';
import { ModuleApi } from '@matrix-org/react-sdk-module-api';
import { Root } from 'react-dom/client';
import { RuntimeModule } from '@matrix-org/react-sdk-module-api';
// @public
export interface AccountAuthApiExtension {
overwriteAccountAuth(accountInfo: AccountAuthInfo): Promise<void>;
}
// @public
export interface AccountAuthInfo {
accessToken: string;
deviceId: string;
homeserverUrl: string;
refreshToken?: string;
userId: string;
}
// @alpha @deprecated (undocumented)
export interface AliasCustomisations {
// (undocumented)
getDisplayAliasForAliasSet?(canonicalAlias: string | null, altAliases: string[]): string | null;
}
// Warning: (ae-incompatible-release-tags) The symbol "Api" is marked as @public, but its signature references "LegacyModuleApiExtension" which is marked as @alpha
// Warning: (ae-incompatible-release-tags) The symbol "Api" is marked as @public, but its signature references "LegacyCustomisationsApiExtension" which is marked as @alpha
//
// @public
export interface Api extends LegacyModuleApiExtension, LegacyCustomisationsApiExtension, DialogApiExtension, AccountAuthApiExtension, ProfileApiExtension {
readonly config: ConfigApi;
createRoot(element: Element): Root;
// @alpha
readonly customComponents: CustomComponentsApi;
readonly i18n: I18nApi;
readonly navigation: NavigationApi;
readonly rootNode: HTMLElement;
}
// @alpha @deprecated (undocumented)
export interface ChatExportCustomisations<ExportFormat, ExportType> {
getForceChatExportParameters(): {
format?: ExportFormat;
range?: ExportType;
numberOfMessages?: number;
includeAttachments?: boolean;
sizeMb?: number;
};
}
// @alpha @deprecated (undocumented)
export interface ComponentVisibilityCustomisations {
shouldShowComponent?(component: "UIComponent.sendInvites" | "UIComponent.roomCreation" | "UIComponent.spaceCreation" | "UIComponent.exploreRooms" | "UIComponent.addIntegrations" | "UIComponent.filterContainer" | "UIComponent.roomOptionsMenu"): boolean;
}
// @public
export interface Config {
// (undocumented)
brand: string;
}
// @public
export interface ConfigApi {
// (undocumented)
get(): Config;
// (undocumented)
get<K extends keyof Config>(key: K): Config[K];
// (undocumented)
get<K extends keyof Config = never>(key?: K): Config | Config[K];
}
// @alpha
export interface CustomComponentsApi {
registerMessageRenderer(eventTypeOrFilter: string | ((mxEvent: MatrixEvent) => boolean), renderer: CustomMessageRenderFunction, hints?: CustomMessageRenderHints): void;
registerRoomPreviewBar(renderer: CustomRoomPreviewBarRenderFunction): void;
}
// @alpha
export type CustomMessageComponentProps = {
mxEvent: MatrixEvent;
};
// @alpha
export type CustomMessageRenderFunction = (
props: CustomMessageComponentProps,
originalComponent?: (props?: OriginalMessageComponentProps) => React.JSX.Element) => JSX.Element;
// @alpha
export type CustomMessageRenderHints = {
allowEditingEvent?: boolean;
allowDownloadingMedia?: (mxEvent: MatrixEvent) => Promise<boolean>;
};
// @alpha
export type CustomRoomPreviewBarComponentProps = {
roomId?: string;
roomAlias?: string;
};
// @alpha
export type CustomRoomPreviewBarRenderFunction = (
props: CustomRoomPreviewBarComponentProps,
originalComponent: (props: CustomRoomPreviewBarComponentProps) => JSX.Element) => JSX.Element;
// @public
export interface DialogApiExtension {
openDialog<M, P extends object>(initialOptions: DialogOptions, dialog: ComponentType<P & DialogProps<M>>, props: P): DialogHandle<M>;
}
// @public
export type DialogHandle<M> = {
finished: Promise<{
ok: boolean;
model: M | null;
}>;
close(): void;
};
// @public
export interface DialogOptions {
title: string;
}
// @public
export type DialogProps<M> = {
onSubmit(model: M): void;
onCancel(): void;
};
// @alpha @deprecated (undocumented)
export interface DirectoryCustomisations {
// (undocumented)
requireCanonicalAliasAccessToPublish?(): boolean;
}
// @public
export interface I18nApi {
get language(): string;
register(translations: Partial<Translations>): void;
translate(key: keyof Translations, variables?: Variables): string;
}
// @alpha @deprecated (undocumented)
export type LegacyCustomisations<T extends object> = (customisations: T) => void;
// @alpha @deprecated (undocumented)
export interface LegacyCustomisationsApiExtension {
// @deprecated (undocumented)
readonly _registerLegacyAliasCustomisations: LegacyCustomisations<AliasCustomisations>;
// @deprecated (undocumented)
readonly _registerLegacyChatExportCustomisations: LegacyCustomisations<ChatExportCustomisations<never, never>>;
// @deprecated (undocumented)
readonly _registerLegacyComponentVisibilityCustomisations: LegacyCustomisations<ComponentVisibilityCustomisations>;
// @deprecated (undocumented)
readonly _registerLegacyDirectoryCustomisations: LegacyCustomisations<DirectoryCustomisations>;
// @deprecated (undocumented)
readonly _registerLegacyLifecycleCustomisations: LegacyCustomisations<LifecycleCustomisations>;
// @deprecated (undocumented)
readonly _registerLegacyMediaCustomisations: LegacyCustomisations<MediaCustomisations<never, never, never>>;
// @deprecated (undocumented)
readonly _registerLegacyRoomListCustomisations: LegacyCustomisations<RoomListCustomisations<never>>;
// @deprecated (undocumented)
readonly _registerLegacyUserIdentifierCustomisations: LegacyCustomisations<UserIdentifierCustomisations>;
// @deprecated (undocumented)
readonly _registerLegacyWidgetPermissionsCustomisations: LegacyCustomisations<WidgetPermissionsCustomisations<never, never>>;
// @deprecated (undocumented)
readonly _registerLegacyWidgetVariablesCustomisations: LegacyCustomisations<WidgetVariablesCustomisations>;
}
// @alpha @deprecated (undocumented)
export interface LegacyModuleApiExtension {
// @deprecated
_registerLegacyModule(LegacyModule: RuntimeModuleConstructor): Promise<void>;
}
// @alpha @deprecated (undocumented)
export interface LifecycleCustomisations {
// (undocumented)
onLoggedOutAndStorageCleared?(): void;
}
// @alpha
export interface MatrixEvent {
content: Record<string, unknown>;
eventId: string;
originServerTs: number;
roomId: string;
sender: string;
stateKey?: string;
type: string;
unsigned: Record<string, unknown>;
}
// @alpha @deprecated (undocumented)
export interface Media {
// (undocumented)
downloadSource(): Promise<Response>;
// (undocumented)
getSquareThumbnailHttp(dim: number): string | null;
// (undocumented)
getThumbnailHttp(width: number, height: number, mode?: "scale" | "crop"): string | null;
// (undocumented)
getThumbnailOfSourceHttp(width: number, height: number, mode?: "scale" | "crop"): string | null;
// (undocumented)
readonly hasThumbnail: boolean;
// (undocumented)
readonly isEncrypted: boolean;
// (undocumented)
readonly srcHttp: string | null;
// (undocumented)
readonly srcMxc: string;
// (undocumented)
readonly thumbnailHttp: string | null;
// (undocumented)
readonly thumbnailMxc: string | null | undefined;
}
// @alpha @deprecated (undocumented)
export interface MediaContructable<PreparedMedia> {
// (undocumented)
new (prepared: PreparedMedia): Media;
}
// @alpha @deprecated (undocumented)
export interface MediaCustomisations<Content, Client, PreparedMedia> {
// (undocumented)
readonly Media: MediaContructable<PreparedMedia>;
// (undocumented)
mediaFromContent(content: Content, client?: Client): Media;
// (undocumented)
mediaFromMxc(mxc?: string, client?: Client): Media;
}
// @public
export interface Module {
// (undocumented)
load(): Promise<void>;
}
// @public
export interface ModuleFactory {
// (undocumented)
new (api: Api): Module;
// (undocumented)
readonly moduleApiVersion: string;
// (undocumented)
readonly prototype: Module;
}
// @public
export class ModuleIncompatibleError extends Error {
constructor(pluginVersion: string);
}
// @public
export class ModuleLoader {
constructor(api: Api);
// Warning: (ae-forgotten-export) The symbol "ModuleExport" needs to be exported by the entry point index.d.ts
//
// (undocumented)
load(moduleExport: ModuleExport): Promise<void>;
// (undocumented)
start(): Promise<void>;
}
// @public
export interface NavigationApi {
toMatrixToLink(link: string, join?: boolean): Promise<void>;
}
// @alpha
export type OriginalMessageComponentProps = {
showUrlPreview?: boolean;
};
// @public
export interface Profile {
displayName?: string;
isGuest?: boolean;
userId?: string;
}
// @public
export interface ProfileApiExtension {
readonly profile: Watchable<Profile>;
}
// @alpha @deprecated (undocumented)
export interface RoomListCustomisations<Room> {
isRoomVisible?(room: Room): boolean;
}
// @alpha @deprecated (undocumented)
export type RuntimeModuleConstructor = new (api: ModuleApi) => RuntimeModule;
// @public
export type Translations = Record<string, {
[ietfLanguageTag: string]: string;
}>;
// @alpha @deprecated (undocumented)
export interface UserIdentifierCustomisations {
getDisplayUserIdentifier(userId: string, opts: {
roomId?: string;
withDisplayName?: boolean;
}): string | null;
}
// @public
export function useWatchable<T>(watchable: Watchable<T>): T;
// @public
export type Variables = {
count?: number;
[key: string]: number | string | undefined;
};
// @public
export class Watchable<T> {
constructor(currentValue: T);
// (undocumented)
unwatch(listener: (value: T) => void): void;
// (undocumented)
get value(): T;
set value(value: T);
// (undocumented)
watch(listener: (value: T) => void): void;
}
// @alpha @deprecated (undocumented)
export interface WidgetPermissionsCustomisations<Widget, Capability> {
preapproveCapabilities?(widget: Widget, requestedCapabilities: Set<Capability>): Promise<Set<Capability>>;
}
// @alpha @deprecated (undocumented)
export interface WidgetVariablesCustomisations {
isReady?(): Promise<void>;
provideVariables?(): {
currentUserId: string;
userDisplayName?: string;
userHttpAvatarUrl?: string;
clientId?: string;
clientTheme?: string;
clientLanguage?: string;
deviceId?: string;
baseUrl?: string;
};
}
// (No @packageDocumentation comment for this package)