@backstage/plugin-techdocs 0.14.0 → 0.15.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.ts CHANGED
@@ -1,20 +1,27 @@
1
1
  /// <reference types="react" />
2
+ import { Entity, CompoundEntityRef } from '@backstage/catalog-model';
2
3
  import * as _backstage_core_plugin_api from '@backstage/core-plugin-api';
3
4
  import { DiscoveryApi, FetchApi, IdentityApi } from '@backstage/core-plugin-api';
4
- import * as _backstage_catalog_model from '@backstage/catalog-model';
5
- import { Entity, EntityName } from '@backstage/catalog-model';
6
5
  import { Config } from '@backstage/config';
7
- import * as _backstage_core_components from '@backstage/core-components';
6
+ import React, { PropsWithChildren } from 'react';
8
7
  import { TableColumn, TableProps } from '@backstage/core-components';
9
8
  import { UserListFilterKind } from '@backstage/plugin-catalog-react';
10
9
  import { CSSProperties } from '@material-ui/styles';
11
- import React, { PropsWithChildren } from 'react';
12
- import * as _material_table_core from '@material-table/core';
13
10
 
11
+ /**
12
+ * Metadata for TechDocs page
13
+ *
14
+ * @public
15
+ */
14
16
  declare type TechDocsMetadata = {
15
17
  site_name: string;
16
18
  site_description: string;
17
19
  };
20
+ /**
21
+ * Metadata for TechDocs Entity
22
+ *
23
+ * @public
24
+ */
18
25
  declare type TechDocsEntityMetadata = Entity & {
19
26
  locationMetadata?: {
20
27
  type: string;
@@ -52,9 +59,9 @@ interface TechDocsStorageApi {
52
59
  getApiOrigin(): Promise<string>;
53
60
  getStorageUrl(): Promise<string>;
54
61
  getBuilder(): Promise<string>;
55
- getEntityDocs(entityId: EntityName, path: string): Promise<string>;
56
- syncEntityDocs(entityId: EntityName, logHandler?: (line: string) => void): Promise<SyncResult>;
57
- getBaseUrl(oldBaseUrl: string, entityId: EntityName, path: string): Promise<string>;
62
+ getEntityDocs(entityId: CompoundEntityRef, path: string): Promise<string>;
63
+ syncEntityDocs(entityId: CompoundEntityRef, logHandler?: (line: string) => void): Promise<SyncResult>;
64
+ getBaseUrl(oldBaseUrl: string, entityId: CompoundEntityRef, path: string): Promise<string>;
58
65
  }
59
66
  /**
60
67
  * API to talk to techdocs-backend.
@@ -66,8 +73,8 @@ interface TechDocsApi {
66
73
  * Set to techdocs.requestUrl as the URL for techdocs-backend API.
67
74
  */
68
75
  getApiOrigin(): Promise<string>;
69
- getTechDocsMetadata(entityId: EntityName): Promise<TechDocsMetadata>;
70
- getEntityMetadata(entityId: EntityName): Promise<TechDocsEntityMetadata>;
76
+ getTechDocsMetadata(entityId: CompoundEntityRef): Promise<TechDocsMetadata>;
77
+ getEntityMetadata(entityId: CompoundEntityRef): Promise<TechDocsEntityMetadata>;
71
78
  }
72
79
 
73
80
  /**
@@ -94,7 +101,7 @@ declare class TechDocsClient implements TechDocsApi {
94
101
  *
95
102
  * @param entityId - Object containing entity data like name, namespace, etc.
96
103
  */
97
- getTechDocsMetadata(entityId: EntityName): Promise<TechDocsMetadata>;
104
+ getTechDocsMetadata(entityId: CompoundEntityRef): Promise<TechDocsMetadata>;
98
105
  /**
99
106
  * Retrieve metadata about an entity.
100
107
  *
@@ -103,7 +110,7 @@ declare class TechDocsClient implements TechDocsApi {
103
110
  *
104
111
  * @param entityId - Object containing entity data like name, namespace, etc.
105
112
  */
106
- getEntityMetadata(entityId: EntityName): Promise<TechDocsEntityMetadata>;
113
+ getEntityMetadata(entityId: CompoundEntityRef): Promise<TechDocsEntityMetadata>;
107
114
  }
108
115
  /**
109
116
  * API which talks to TechDocs storage to fetch files to render.
@@ -132,7 +139,7 @@ declare class TechDocsStorageClient implements TechDocsStorageApi {
132
139
  * @returns HTML content of the docs page as string
133
140
  * @throws Throws error when the page is not found.
134
141
  */
135
- getEntityDocs(entityId: EntityName, path: string): Promise<string>;
142
+ getEntityDocs(entityId: CompoundEntityRef, path: string): Promise<string>;
136
143
  /**
137
144
  * Check if docs are on the latest version and trigger rebuild if not
138
145
  *
@@ -141,83 +148,267 @@ declare class TechDocsStorageClient implements TechDocsStorageApi {
141
148
  * @returns Whether documents are currently synchronized to newest version
142
149
  * @throws Throws error on error from sync endpoint in Techdocs Backend
143
150
  */
144
- syncEntityDocs(entityId: EntityName, logHandler?: (line: string) => void): Promise<SyncResult>;
145
- getBaseUrl(oldBaseUrl: string, entityId: EntityName, path: string): Promise<string>;
151
+ syncEntityDocs(entityId: CompoundEntityRef, logHandler?: (line: string) => void): Promise<SyncResult>;
152
+ getBaseUrl(oldBaseUrl: string, entityId: CompoundEntityRef, path: string): Promise<string>;
146
153
  }
147
154
 
148
- declare const DocsResultListItem: ({ result, lineClamp, asListItem, asLink, title, }: {
149
- result: any;
150
- lineClamp?: number | undefined;
151
- asListItem?: boolean | undefined;
152
- asLink?: boolean | undefined;
153
- title?: string | undefined;
155
+ /**
156
+ * Props for {@link Reader}
157
+ *
158
+ * @public
159
+ */
160
+ declare type ReaderProps = {
161
+ entityRef: CompoundEntityRef;
162
+ withSearch?: boolean;
163
+ onReady?: () => void;
164
+ };
165
+ /**
166
+ * Component responsible for rendering TechDocs documentation
167
+ *
168
+ * @public
169
+ */
170
+ declare const Reader: (props: ReaderProps) => JSX.Element;
171
+
172
+ /**
173
+ * Helper function that gives the children of {@link TechDocsReaderPage} access to techdocs and entity metadata
174
+ *
175
+ * @public
176
+ */
177
+ declare type TechDocsReaderPageRenderFunction = ({ techdocsMetadataValue, entityMetadataValue, entityRef, }: {
178
+ techdocsMetadataValue?: TechDocsMetadata | undefined;
179
+ entityMetadataValue?: TechDocsEntityMetadata | undefined;
180
+ entityRef: CompoundEntityRef;
181
+ onReady: () => void;
154
182
  }) => JSX.Element;
183
+ /**
184
+ * Props for {@link TechDocsReaderPage}
185
+ *
186
+ * @public
187
+ */
188
+ declare type TechDocsReaderPageProps = {
189
+ children?: TechDocsReaderPageRenderFunction | React.ReactNode;
190
+ };
191
+ /**
192
+ * @public
193
+ * @deprecated use {@link TechDocsReaderPage} instead
194
+ */
195
+ declare const TechDocsPage: (props: TechDocsReaderPageProps) => JSX.Element;
196
+ /**
197
+ * @public
198
+ * @deprecated use {@link TechDocsReaderPageRenderFunction} instead
199
+ */
200
+ declare type TechDocsPageRenderFunction = TechDocsReaderPageRenderFunction;
201
+
202
+ /**
203
+ * Props for {@link TechDocsReaderPageHeader}
204
+ *
205
+ * @public
206
+ */
207
+ declare type TechDocsReaderPageHeaderProps = PropsWithChildren<{
208
+ entityRef: CompoundEntityRef;
209
+ entityMetadata?: TechDocsEntityMetadata;
210
+ techDocsMetadata?: TechDocsMetadata;
211
+ }>;
212
+ /**
213
+ * Component responsible for rendering a Header with metadata on TechDocs reader page.
214
+ *
215
+ * @public
216
+ */
217
+ declare const TechDocsReaderPageHeader: (props: TechDocsReaderPageHeaderProps) => JSX.Element;
218
+ /**
219
+ * @public
220
+ * @deprecated use {@link TechDocsReaderPageHeader} instead
221
+ */
222
+ declare const TechDocsPageHeader: (props: TechDocsReaderPageHeaderProps) => JSX.Element;
223
+ /**
224
+ * @public
225
+ * @deprecated use {@link TechDocsReaderPageHeader} instead
226
+ */
227
+ declare type TechDocsPageHeaderProps = TechDocsReaderPageHeaderProps;
228
+
229
+ /**
230
+ * Props for {@link TechDocsSearchResultListItem}.
231
+ *
232
+ * @public
233
+ */
234
+ declare type TechDocsSearchResultListItemProps = {
235
+ result: any;
236
+ lineClamp?: number;
237
+ asListItem?: boolean;
238
+ asLink?: boolean;
239
+ title?: string;
240
+ };
241
+ /**
242
+ * Component which renders documentation and related metadata.
243
+ *
244
+ * @public
245
+ */
246
+ declare const TechDocsSearchResultListItem: (props: TechDocsSearchResultListItemProps) => JSX.Element;
247
+ /**
248
+ * @public
249
+ * @deprecated use {@link TechDocsSearchResultListItem} instead
250
+ */
251
+ declare const DocsResultListItem: (props: TechDocsSearchResultListItemProps) => JSX.Element;
155
252
 
253
+ /**
254
+ * Props for {@link TechDocsSearch}
255
+ *
256
+ * @public
257
+ */
258
+ declare type TechDocsSearchProps = {
259
+ entityId: CompoundEntityRef;
260
+ debounceTime?: number;
261
+ };
262
+ /**
263
+ * Component used to render search bar on TechDocs page, scoped to
264
+ *
265
+ * @public
266
+ */
267
+ declare const TechDocsSearch: (props: TechDocsSearchProps) => JSX.Element;
268
+
269
+ /**
270
+ * Component responsible to get entities from entity list context and pass down to DocsCardGrid
271
+ *
272
+ * @public
273
+ */
274
+ declare const EntityListDocsGrid: () => JSX.Element;
275
+
276
+ /**
277
+ * Props for {@link DocsCardGrid}
278
+ *
279
+ * @public
280
+ */
281
+ declare type DocsCardGridProps = {
282
+ entities: Entity[] | undefined;
283
+ };
284
+ /**
285
+ * Component which accepts a list of entities and renders a item card for each entity
286
+ *
287
+ * @public
288
+ */
289
+ declare const DocsCardGrid: (props: DocsCardGridProps) => JSX.Element | null;
290
+
291
+ /**
292
+ * Generic representing the metadata structure for a docs table row.
293
+ *
294
+ * @public
295
+ */
156
296
  declare type DocsTableRow = {
157
297
  entity: Entity;
158
298
  resolved: {
159
299
  docsUrl: string;
160
300
  ownedByRelationsTitle: string;
161
- ownedByRelations: EntityName[];
301
+ ownedByRelations: CompoundEntityRef[];
162
302
  };
163
303
  };
164
304
 
165
- declare const DefaultTechDocsHome: ({ initialFilter, columns, actions, }: {
166
- initialFilter?: UserListFilterKind | undefined;
167
- columns?: TableColumn<DocsTableRow>[] | undefined;
305
+ /**
306
+ * Props for {@link EntityListDocsTable}.
307
+ *
308
+ * @public
309
+ */
310
+ declare type EntityListDocsTableProps = {
311
+ columns?: TableColumn<DocsTableRow>[];
168
312
  actions?: TableProps<DocsTableRow>['actions'];
169
- }) => JSX.Element;
170
-
171
- declare const EntityListDocsGrid: () => JSX.Element;
172
-
173
- declare function createCopyDocsUrlAction(copyToClipboard: Function): (row: DocsTableRow) => {
174
- icon: () => JSX.Element;
175
- tooltip: string;
176
- onClick: () => any;
177
313
  };
178
- declare function createStarEntityAction(isStarredEntity: Function, toggleStarredEntity: Function): ({ entity }: DocsTableRow) => {
179
- cellStyle: {
180
- paddingLeft: string;
314
+ /**
315
+ * Component which renders a table with entities from catalog.
316
+ *
317
+ * @public
318
+ */
319
+ declare const EntityListDocsTable: {
320
+ (props: EntityListDocsTableProps): JSX.Element;
321
+ columns: {
322
+ createNameColumn(): TableColumn<DocsTableRow>;
323
+ createOwnerColumn(): TableColumn<DocsTableRow>;
324
+ createTypeColumn(): TableColumn<DocsTableRow>;
325
+ };
326
+ actions: {
327
+ createCopyDocsUrlAction(copyToClipboard: Function): (row: DocsTableRow) => {
328
+ icon: () => JSX.Element;
329
+ tooltip: string;
330
+ onClick: () => any;
331
+ };
332
+ createStarEntityAction(isStarredEntity: Function, toggleStarredEntity: Function): ({ entity }: DocsTableRow) => {
333
+ cellStyle: {
334
+ paddingLeft: string;
335
+ };
336
+ icon: () => JSX.Element;
337
+ tooltip: string;
338
+ onClick: () => any;
339
+ };
181
340
  };
182
- icon: () => JSX.Element;
183
- tooltip: string;
184
- onClick: () => any;
185
341
  };
186
342
 
187
- declare const actionFactories_createCopyDocsUrlAction: typeof createCopyDocsUrlAction;
188
- declare const actionFactories_createStarEntityAction: typeof createStarEntityAction;
189
- declare namespace actionFactories {
190
- export {
191
- actionFactories_createCopyDocsUrlAction as createCopyDocsUrlAction,
192
- actionFactories_createStarEntityAction as createStarEntityAction,
193
- };
194
- }
195
-
196
- declare function createNameColumn(): TableColumn<DocsTableRow>;
197
- declare function createOwnerColumn(): TableColumn<DocsTableRow>;
198
- declare function createTypeColumn(): TableColumn<DocsTableRow>;
199
-
200
- declare const columnFactories_createNameColumn: typeof createNameColumn;
201
- declare const columnFactories_createOwnerColumn: typeof createOwnerColumn;
202
- declare const columnFactories_createTypeColumn: typeof createTypeColumn;
203
- declare namespace columnFactories {
204
- export {
205
- columnFactories_createNameColumn as createNameColumn,
206
- columnFactories_createOwnerColumn as createOwnerColumn,
207
- columnFactories_createTypeColumn as createTypeColumn,
208
- };
209
- }
343
+ /**
344
+ * Props for {@link DocsTable}.
345
+ *
346
+ * @public
347
+ */
348
+ declare type DocsTableProps = {
349
+ entities: Entity[] | undefined;
350
+ title?: string | undefined;
351
+ loading?: boolean | undefined;
352
+ columns?: TableColumn<DocsTableRow>[];
353
+ actions?: TableProps<DocsTableRow>['actions'];
354
+ };
355
+ /**
356
+ * Component which renders a table documents
357
+ *
358
+ * @public
359
+ */
360
+ declare const DocsTable: {
361
+ (props: DocsTableProps): JSX.Element | null;
362
+ columns: {
363
+ createNameColumn(): TableColumn<DocsTableRow>;
364
+ createOwnerColumn(): TableColumn<DocsTableRow>;
365
+ createTypeColumn(): TableColumn<DocsTableRow>;
366
+ };
367
+ actions: {
368
+ createCopyDocsUrlAction(copyToClipboard: Function): (row: DocsTableRow) => {
369
+ icon: () => JSX.Element;
370
+ tooltip: string;
371
+ onClick: () => any;
372
+ };
373
+ createStarEntityAction(isStarredEntity: Function, toggleStarredEntity: Function): ({ entity }: DocsTableRow) => {
374
+ cellStyle: {
375
+ paddingLeft: string;
376
+ };
377
+ icon: () => JSX.Element;
378
+ tooltip: string;
379
+ onClick: () => any;
380
+ };
381
+ };
382
+ };
210
383
 
211
- declare const EntityListDocsTable: {
212
- ({ columns, actions, }: {
213
- columns?: TableColumn<DocsTableRow>[] | undefined;
214
- actions?: TableProps<DocsTableRow>['actions'];
215
- }): JSX.Element;
216
- columns: typeof columnFactories;
217
- actions: typeof actionFactories;
384
+ /**
385
+ * Props for {@link DefaultTechDocsHome}
386
+ *
387
+ * @public
388
+ */
389
+ declare type DefaultTechDocsHomeProps = {
390
+ initialFilter?: UserListFilterKind;
391
+ columns?: TableColumn<DocsTableRow>[];
392
+ actions?: TableProps<DocsTableRow>['actions'];
218
393
  };
394
+ /**
395
+ * Component which renders a default documentation landing page.
396
+ *
397
+ * @public
398
+ */
399
+ declare const DefaultTechDocsHome: (props: DefaultTechDocsHomeProps) => JSX.Element;
219
400
 
401
+ /**
402
+ * Available panel types
403
+ *
404
+ * @public
405
+ */
220
406
  declare type PanelType = 'DocsCardGrid' | 'DocsTable';
407
+ /**
408
+ * Type representing a TechDocsCustomHome panel.
409
+ *
410
+ * @public
411
+ */
221
412
  interface PanelConfig {
222
413
  title: string;
223
414
  description: string;
@@ -225,30 +416,57 @@ interface PanelConfig {
225
416
  panelCSS?: CSSProperties;
226
417
  filterPredicate: ((entity: Entity) => boolean) | string;
227
418
  }
419
+ /**
420
+ * Type representing a TechDocsCustomHome tab.
421
+ *
422
+ * @public
423
+ */
228
424
  interface TabConfig {
229
425
  label: string;
230
426
  panels: PanelConfig[];
231
427
  }
428
+ /**
429
+ * Type representing a list of TechDocsCustomHome tabs.
430
+ *
431
+ * @public
432
+ */
232
433
  declare type TabsConfig = TabConfig[];
434
+ /**
435
+ * Props for {@link TechDocsCustomHome}
436
+ *
437
+ * @public
438
+ */
439
+ declare type TechDocsCustomHomeProps = {
440
+ tabsConfig: TabsConfig;
441
+ };
233
442
 
234
- declare type Props$2 = {
443
+ /**
444
+ * Props for {@link TechDocsPageWrapper}
445
+ *
446
+ * @public
447
+ */
448
+ declare type TechDocsPageWrapperProps = {
235
449
  children?: React.ReactNode;
236
450
  };
237
- declare const TechDocsPageWrapper: ({ children }: Props$2) => JSX.Element;
451
+ /**
452
+ * Component wrapping a techdocs page with Page and Header components
453
+ *
454
+ * @public
455
+ */
456
+ declare const TechDocsPageWrapper: (props: TechDocsPageWrapperProps) => JSX.Element;
238
457
 
458
+ /**
459
+ * Component responsible for updating TechDocs filters
460
+ *
461
+ * @public
462
+ */
239
463
  declare const TechDocsPicker: () => null;
240
464
 
241
- declare type TechDocsPageRenderFunction = ({ techdocsMetadataValue, entityMetadataValue, entityRef, }: {
242
- techdocsMetadataValue?: TechDocsMetadata | undefined;
243
- entityMetadataValue?: TechDocsEntityMetadata | undefined;
244
- entityRef: EntityName;
245
- onReady: () => void;
246
- }) => JSX.Element;
247
- declare type TechDocsPageProps = {
248
- children?: TechDocsPageRenderFunction | React.ReactNode;
249
- };
250
- declare const TechDocsPage: ({ children }: TechDocsPageProps) => JSX.Element;
251
-
465
+ /**
466
+ * The Backstage plugin that renders technical documentation for your components
467
+ *
468
+ * @public
469
+ */
252
470
  declare const techdocsPlugin: _backstage_core_plugin_api.BackstagePlugin<{
253
471
  root: _backstage_core_plugin_api.RouteRef<undefined>;
254
472
  docRoot: _backstage_core_plugin_api.RouteRef<{
@@ -258,44 +476,54 @@ declare const techdocsPlugin: _backstage_core_plugin_api.BackstagePlugin<{
258
476
  }>;
259
477
  entityContent: _backstage_core_plugin_api.RouteRef<undefined>;
260
478
  }, {}>;
479
+ /**
480
+ * Routable extension used to render docs
481
+ *
482
+ * @public
483
+ */
261
484
  declare const TechdocsPage: () => JSX.Element;
262
- declare const EntityTechdocsContent: (_props: {}) => JSX.Element;
263
- declare const DocsCardGrid: ({ entities, }: {
264
- entities: _backstage_catalog_model.Entity[] | undefined;
265
- }) => JSX.Element | null;
266
- declare const DocsTable: ({ entities, title, loading, columns, actions, }: {
267
- entities: _backstage_catalog_model.Entity[] | undefined;
268
- title?: string | undefined;
269
- loading?: boolean | undefined;
270
- columns?: _backstage_core_components.TableColumn<DocsTableRow>[] | undefined;
271
- actions?: (_material_table_core.Action<DocsTableRow> | {
272
- action: (rowData: DocsTableRow) => _material_table_core.Action<DocsTableRow>;
273
- position: string;
274
- } | ((rowData: DocsTableRow) => _material_table_core.Action<DocsTableRow>))[] | undefined;
275
- }) => JSX.Element | null;
276
- declare const TechDocsCustomHome: ({ tabsConfig, }: {
277
- tabsConfig: TabsConfig;
278
- }) => JSX.Element;
485
+ /**
486
+ * Routable extension used to render docs on Entity page
487
+ *
488
+ * @public
489
+ */
490
+ declare const EntityTechdocsContent: () => JSX.Element;
491
+ /**
492
+ * Component which takes a custom tabs config object and renders a documentation landing page.
493
+ *
494
+ * @public
495
+ */
496
+ declare const TechDocsCustomHome: (props: TechDocsCustomHomeProps) => JSX.Element;
497
+ /**
498
+ * Responsible for rendering the provided router element
499
+ *
500
+ * @public
501
+ */
279
502
  declare const TechDocsIndexPage: () => JSX.Element;
280
- declare const TechDocsReaderPage: ({ children }: TechDocsPageProps) => JSX.Element;
281
-
282
- declare type Props$1 = {
283
- entityRef: EntityName;
284
- withSearch?: boolean;
285
- onReady?: () => void;
286
- };
287
- declare const Reader: ({ entityRef, onReady, withSearch, }: Props$1) => JSX.Element;
288
-
289
- declare type TechDocsPageHeaderProps = PropsWithChildren<{
290
- entityRef: EntityName;
291
- entityMetadata?: TechDocsEntityMetadata;
292
- techDocsMetadata?: TechDocsMetadata;
293
- }>;
294
- declare const TechDocsPageHeader: ({ entityRef, entityMetadata, techDocsMetadata, children, }: TechDocsPageHeaderProps) => JSX.Element;
503
+ /**
504
+ * Component responsible for composing a TechDocs reader page experience
505
+ *
506
+ * @public
507
+ */
508
+ declare const TechDocsReaderPage: (props: TechDocsReaderPageProps) => JSX.Element;
295
509
 
510
+ /**
511
+ * Helper that takes in entity and returns true/false if TechDocs is available for the entity
512
+ *
513
+ * @public
514
+ */
296
515
  declare const isTechDocsAvailable: (entity: Entity) => boolean;
516
+ /**
517
+ * Responsible for registering routes for TechDocs, TechDocs Homepage and separate TechDocs page
518
+ *
519
+ * @public
520
+ */
297
521
  declare const Router: () => JSX.Element;
298
- declare type Props = {};
299
- declare const EmbeddedDocsRouter: (_props: Props) => JSX.Element;
522
+ /**
523
+ * Responsible for registering route to view docs on Entity page
524
+ *
525
+ * @public
526
+ */
527
+ declare const EmbeddedDocsRouter: () => JSX.Element;
300
528
 
301
- export { DefaultTechDocsHome, DocsCardGrid, DocsResultListItem, DocsTable, DocsTableRow, EmbeddedDocsRouter, EntityListDocsGrid, EntityListDocsTable, EntityTechdocsContent, PanelType, Reader, Router, SyncResult, TechDocsApi, TechDocsClient, TechDocsCustomHome, TechDocsIndexPage, TechDocsPage, TechDocsPageHeader, TechDocsPageHeaderProps, TechDocsPageProps, TechDocsPageRenderFunction, TechDocsPageWrapper, TechDocsPicker, TechDocsReaderPage, TechDocsStorageApi, TechDocsStorageClient, TechdocsPage, isTechDocsAvailable, techdocsPlugin as plugin, techdocsApiRef, techdocsPlugin, techdocsStorageApiRef };
529
+ export { DefaultTechDocsHome, DefaultTechDocsHomeProps, DocsCardGrid, DocsCardGridProps, DocsResultListItem, DocsTable, DocsTableProps, DocsTableRow, EmbeddedDocsRouter, EntityListDocsGrid, EntityListDocsTable, EntityListDocsTableProps, EntityTechdocsContent, PanelConfig, PanelType, Reader, ReaderProps, Router, SyncResult, TabConfig, TabsConfig, TechDocsApi, TechDocsClient, TechDocsCustomHome, TechDocsCustomHomeProps, TechDocsEntityMetadata, TechDocsIndexPage, TechDocsMetadata, TechDocsPage, TechDocsPageHeader, TechDocsPageHeaderProps, TechDocsPageRenderFunction, TechDocsPageWrapper, TechDocsPageWrapperProps, TechDocsPicker, TechDocsReaderPage, TechDocsReaderPageHeader, TechDocsReaderPageHeaderProps, TechDocsReaderPageProps, TechDocsReaderPageRenderFunction, TechDocsSearch, TechDocsSearchProps, TechDocsSearchResultListItem, TechDocsSearchResultListItemProps, TechDocsStorageApi, TechDocsStorageClient, TechdocsPage, isTechDocsAvailable, techdocsPlugin as plugin, techdocsApiRef, techdocsPlugin, techdocsStorageApiRef };