prepareInstruments = (instruments) => {
  const result = Object.entries(instruments).map(([name, builder]) => [name, builder({ inject, observer })]);

  return objectToMap(Object.fromEntries(result));
}
@typedef {{
root: HTMLElement,
polling: boolean,
apiGateway: string | URL,
apiEndpoints: import("../utils/api-proxy").Endpoints,
apiMockDisabled: boolean,
apiHeaders?: Dict<string>,
settings: Dict<any>,
labelStudio: Dict<any>,
env: "development" | "production",
mode: "labelstream" | "explorer",
table: TableConfig,
links: Dict<string|null>,
showPreviews: boolean,
projectId?: number,
datasetId?: number,
interfaces: Dict<boolean>,
instruments: Dict<any>,
toolbar?: string,
spinner?: import("react").ReactNode
apiTransform?: Record<string, Record<string, Function>
tabControls?: { add?: boolean, delete?: boolean, edit?: boolean, duplicate?: boolean },
}} DMConfig