Maybe make api-extractor happy

This commit is contained in:
David Baker
2025-09-24 16:07:31 +01:00
parent 2cd86f7c3d
commit 9685775528
5 changed files with 61 additions and 2 deletions
@@ -35,15 +35,26 @@ export interface AliasCustomisations {
// //
// @public // @public
export interface Api extends LegacyModuleApiExtension, LegacyCustomisationsApiExtension, DialogApiExtension, AccountAuthApiExtension, ProfileApiExtension { export interface Api extends LegacyModuleApiExtension, LegacyCustomisationsApiExtension, DialogApiExtension, AccountAuthApiExtension, ProfileApiExtension {
// @alpha
readonly builtins: BuiltinsApi;
readonly config: ConfigApi; readonly config: ConfigApi;
createRoot(element: Element): Root; createRoot(element: Element): Root;
// @alpha // @alpha
readonly customComponents: CustomComponentsApi; readonly customComponents: CustomComponentsApi;
// @alpha
readonly extras: ExtrasApi;
readonly i18n: I18nApi; readonly i18n: I18nApi;
// Warning: (ae-incompatible-release-tags) The symbol "navigation" is marked as @public, but its signature references "NavigationApi" which is marked as @alpha
readonly navigation: NavigationApi; readonly navigation: NavigationApi;
readonly rootNode: HTMLElement; readonly rootNode: HTMLElement;
} }
// @alpha
export interface BuiltinsApi {
// (undocumented)
getRoomViewComponent(): React.ComponentType<RoomViewProps>;
}
// @alpha @deprecated (undocumented) // @alpha @deprecated (undocumented)
export interface ChatExportCustomisations<ExportFormat, ExportType> { export interface ChatExportCustomisations<ExportFormat, ExportType> {
getForceChatExportParameters(): { getForceChatExportParameters(): {
@@ -140,6 +151,12 @@ export interface DirectoryCustomisations {
requireCanonicalAliasAccessToPublish?(): boolean; requireCanonicalAliasAccessToPublish?(): boolean;
} }
// @alpha
export interface ExtrasApi {
// (undocumented)
addSpacePanelItem(renderer: SpacePanelItemRenderFunction): void;
}
// @public // @public
export interface I18nApi { export interface I18nApi {
get language(): string; get language(): string;
@@ -186,6 +203,9 @@ export interface LifecycleCustomisations {
onLoggedOutAndStorageCleared?(): void; onLoggedOutAndStorageCleared?(): void;
} }
// @alpha
export type LocationRenderFunction = () => JSX.Element;
// @alpha // @alpha
export interface MatrixEvent { export interface MatrixEvent {
content: Record<string, unknown>; content: Record<string, unknown>;
@@ -270,8 +290,10 @@ export class ModuleLoader {
start(): Promise<void>; start(): Promise<void>;
} }
// @public // @alpha
export interface NavigationApi { export interface NavigationApi {
// (undocumented)
registerLocationRenderer(path: string, renderer: LocationRenderFunction): void;
toMatrixToLink(link: string, join?: boolean): Promise<void>; toMatrixToLink(link: string, join?: boolean): Promise<void>;
} }
@@ -297,9 +319,20 @@ export interface RoomListCustomisations<Room> {
isRoomVisible?(room: Room): boolean; isRoomVisible?(room: Room): boolean;
} }
// @alpha
export interface RoomViewProps {
// (undocumented)
roomId?: string;
}
// @alpha @deprecated (undocumented) // @alpha @deprecated (undocumented)
export type RuntimeModuleConstructor = new (api: ModuleApi) => RuntimeModule; export type RuntimeModuleConstructor = new (api: ModuleApi) => RuntimeModule;
// Warning: (ae-forgotten-export) The symbol "SpacePanelItemProps" needs to be exported by the entry point index.d.ts
//
// @alpha
export type SpacePanelItemRenderFunction = (props: SpacePanelItemProps) => JSX.Element;
// @public // @public
export type Translations = Record<string, { export type Translations = Record<string, {
[ietfLanguageTag: string]: string; [ietfLanguageTag: string]: string;
@@ -5,6 +5,10 @@ SPDX-License-Identifier: AGPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details. Please see LICENSE files in the repository root for full details.
*/ */
/**
* The props that must be passed to a RoomView component.
* @alpha Subject to change.
*/
export interface RoomViewProps { export interface RoomViewProps {
roomId?: string; roomId?: string;
} }
@@ -13,6 +17,7 @@ export interface RoomViewProps {
* Exposes components that are part of Element Web to allow modules to render them * Exposes components that are part of Element Web to allow modules to render them
* as part of their custom components (because they can't import the components from * as part of their custom components (because they can't import the components from
* Element Web since it would cause a dependency cycle) * Element Web since it would cause a dependency cycle)
* @alpha
*/ */
export interface BuiltinsApi { export interface BuiltinsApi {
getRoomViewComponent(): React.ComponentType<RoomViewProps>; getRoomViewComponent(): React.ComponentType<RoomViewProps>;
@@ -11,8 +11,16 @@ interface SpacePanelItemProps {
isPanelCollapsed: boolean; isPanelCollapsed: boolean;
} }
/**
* The type of the function used to render a space panel item.
* @alpha
*/
export type SpacePanelItemRenderFunction = (props: SpacePanelItemProps) => JSX.Element; export type SpacePanelItemRenderFunction = (props: SpacePanelItemProps) => JSX.Element;
/**
* API for inserting extra UI into Element Web.
* @alpha Subject to change.
*/
export interface ExtrasApi { export interface ExtrasApi {
addSpacePanelItem(renderer: SpacePanelItemRenderFunction): void; addSpacePanelItem(renderer: SpacePanelItemRenderFunction): void;
} }
@@ -105,6 +105,10 @@ export interface Api
*/ */
readonly customComponents: CustomComponentsApi; readonly customComponents: CustomComponentsApi;
/**
* Allows modules to render components that are part of Element Web.
* @alpha
*/
readonly builtins: BuiltinsApi; readonly builtins: BuiltinsApi;
/** /**
@@ -113,6 +117,10 @@ export interface Api
*/ */
readonly navigation: NavigationApi; readonly navigation: NavigationApi;
/**
* Allows modules to insert extra UI into Element Web.
* @alpha
*/
readonly extras: ExtrasApi; readonly extras: ExtrasApi;
/** /**
@@ -7,11 +7,16 @@ Please see LICENSE files in the repository root for full details.
import { JSX } from "react"; import { JSX } from "react";
/**
* A function called to render a component when a user navigates to the corresponding
* location. Currently renders alongside just the SpacePanel.
* @alpha
*/
export type LocationRenderFunction = () => JSX.Element; export type LocationRenderFunction = () => JSX.Element;
/** /**
* API methods to navigate the application. * API methods to navigate the application.
* @public * @alpha
*/ */
export interface NavigationApi { export interface NavigationApi {
/** /**