UNPKG

@jbrowse/core

Version:

JBrowse 2 core libraries used by plugins

286 lines (285 loc) 17.6 kB
import ReExports from './ReExports'; import AdapterType from './pluggableElementTypes/AdapterType'; import AddTrackWorkflowType from './pluggableElementTypes/AddTrackWorkflowType'; import ConnectionType from './pluggableElementTypes/ConnectionType'; import DisplayType from './pluggableElementTypes/DisplayType'; import InternetAccountType from './pluggableElementTypes/InternetAccountType'; import RpcMethodType from './pluggableElementTypes/RpcMethodType'; import TextSearchAdapterType from './pluggableElementTypes/TextSearchAdapterType'; import TrackType from './pluggableElementTypes/TrackType'; import ViewType from './pluggableElementTypes/ViewType'; import WidgetType from './pluggableElementTypes/WidgetType'; import RendererType from './pluggableElementTypes/renderers/RendererType'; import type Plugin from './Plugin'; import type { PluginDefinition } from './PluginLoader'; import type { PluggableElementMember, PluggableElementType } from './pluggableElementTypes'; import type PluggableElementBase from './pluggableElementTypes/PluggableElementBase'; import type { AbstractRootModel } from './util'; import type { IAnyModelType, IAnyType } from 'mobx-state-tree'; declare class PhasedScheduler<PhaseName extends string> { phaseCallbacks: Map<PhaseName, Function[]>; phaseOrder: PhaseName[]; constructor(...phaseOrder: PhaseName[]); add(phase: PhaseName, callback: Function): void; run(): void; } type PluggableElementTypeGroup = 'renderer' | 'adapter' | 'display' | 'track' | 'connection' | 'view' | 'widget' | 'rpc method' | 'internet account' | 'text search adapter' | 'add track workflow'; declare class TypeRecord<ElementClass extends PluggableElementBase> { typeName: string; baseClass: (new (...args: unknown[]) => ElementClass) | (Function & { prototype: ElementClass; }); registeredTypes: Record<string, ElementClass>; constructor(typeName: string, baseClass: (new (...args: unknown[]) => ElementClass) | (Function & { prototype: ElementClass; })); add(name: string, t: ElementClass): void; has(name: string): boolean; get(name: string): ElementClass | undefined; all(): ElementClass[]; } type AnyFunction = (...args: any) => any; export type PluginMetadata = Record<string, unknown>; export interface PluginLoadRecord { metadata?: PluginMetadata; plugin: Plugin; } export interface RuntimePluginLoadRecord extends PluginLoadRecord { definition: PluginDefinition; } export default class PluginManager { plugins: Plugin[]; jexl: { addBinaryOp: (operator: string, precedence: number, fn: (left: any, right: any) => any) => void; addUnaryOp: (operator: string, fn: (right: any) => any) => void; addTransform: (name: string, fn: (value: any, ...args: any[]) => any) => void; addTransforms: (map: { [key: string]: (value: any, ...args: any[]) => any; }) => void; getTransform: (name: string) => (value: any, ...args: any[]) => any; addFunction: (name: string, fn: (value: any, ...args: any[]) => any) => void; addFunctions: (map: { [key: string]: (value: any, ...args: any[]) => any; }) => void; getFunction: (name: string) => (value: any, ...args: any[]) => any; eval: (expression: string, context?: import("jexl/Expression").Context) => Promise<any>; evalSync: (expression: string, context?: import("jexl/Expression").Context) => any; compile: (expression: string) => import("jexl/Expression").default; createExpression: (expression: string) => import("jexl/Expression").default; removeOp: (operator: string) => void; _grammar: import("jexl/Grammar").default; }; pluginMetadata: Record<string, PluginMetadata>; runtimePluginDefinitions: PluginDefinition[]; elementCreationSchedule: PhasedScheduler<PluggableElementTypeGroup> | undefined; rendererTypes: TypeRecord<RendererType>; adapterTypes: TypeRecord<AdapterType>; textSearchAdapterTypes: TypeRecord<TextSearchAdapterType>; trackTypes: TypeRecord<TrackType>; displayTypes: TypeRecord<DisplayType>; connectionTypes: TypeRecord<ConnectionType>; viewTypes: TypeRecord<ViewType>; widgetTypes: TypeRecord<WidgetType>; rpcMethods: TypeRecord<RpcMethodType>; addTrackWidgets: TypeRecord<AddTrackWorkflowType>; internetAccountTypes: TypeRecord<InternetAccountType>; configured: boolean; rootModel?: AbstractRootModel; extensionPoints: Map<string, Function[]>; constructor(initialPlugins?: (Plugin | PluginLoadRecord)[]); pluginConfigurationSchemas(): Record<string, unknown>; addPlugin(load: Plugin | PluginLoadRecord | RuntimePluginLoadRecord): this; getPlugin(name: string): Plugin | undefined; hasPlugin(name: string): boolean; createPluggableElements(): this; setRootModel(rootModel: AbstractRootModel): this; configure(): this; getElementTypeRecord(groupName: PluggableElementTypeGroup): TypeRecord<PluggableElementBase>; addElementType(groupName: PluggableElementTypeGroup, creationCallback: (pluginManager: PluginManager) => PluggableElementType): this; getElementType(groupName: PluggableElementTypeGroup, typeName: string): PluggableElementBase | undefined; getElementTypesInGroup(groupName: PluggableElementTypeGroup): PluggableElementBase[]; getViewElements(): ViewType[]; getTrackElements(): TrackType[]; getConnectionElements(): ConnectionType[]; getAddTrackWorkflowElements(): AddTrackWorkflowType[]; getRpcElements(): RpcMethodType[]; getDisplayElements(): DisplayType[]; getAdapterElements(): AdapterType[]; pluggableMstType(groupName: PluggableElementTypeGroup, fieldName: PluggableElementMember, fallback?: IAnyType): IAnyType; pluggableConfigSchemaType(typeGroup: PluggableElementTypeGroup, fieldName?: PluggableElementMember): IAnyModelType; jbrequireCache: Map<any, any>; lib: { '@material-ui/lab/ToggleButton': import("react").LazyExoticComponent<import("@mui/material").ExtendButtonBase<import("@mui/material").ToggleButtonTypeMap<{}, "button">>>; '@material-ui/lab/ToggleButtonGroup': import("react").LazyExoticComponent<typeof import("@mui/material").ToggleButtonGroup>; '@material-ui/lab/Autocomplete': import("react").LazyExoticComponent<typeof import("@mui/material").Autocomplete>; '@material-ui/lab/Alert': import("react").LazyExoticComponent<typeof import("@mui/material").Alert>; '@material-ui/lab': { Alert: import("react").LazyExoticComponent<typeof import("@mui/material").Alert>; Autocomplete: import("react").LazyExoticComponent<typeof import("@mui/material").Autocomplete>; ToggleButton: import("react").LazyExoticComponent<import("@mui/material").ExtendButtonBase<import("@mui/material").ToggleButtonTypeMap<{}, "button">>>; ToggleButtonGroup: import("react").LazyExoticComponent<typeof import("@mui/material").ToggleButtonGroup>; }; '@jbrowse/core/Plugin': typeof Plugin; '@jbrowse/core/pluggableElementTypes': typeof import("./pluggableElementTypes"); '@jbrowse/core/pluggableElementTypes/ViewType': typeof ViewType; '@jbrowse/core/pluggableElementTypes/AdapterType': typeof AdapterType; '@jbrowse/core/pluggableElementTypes/DisplayType': typeof DisplayType; '@jbrowse/core/pluggableElementTypes/TrackType': typeof TrackType; '@jbrowse/core/pluggableElementTypes/WidgetType': typeof WidgetType; '@jbrowse/core/pluggableElementTypes/models': typeof import("./pluggableElementTypes/models"); '@jbrowse/core/pluggableElementTypes/renderers/ServerSideRendererType': typeof import("./pluggableElementTypes/renderers/ServerSideRendererType"); '@jbrowse/core/pluggableElementTypes/renderers/CircularChordRendererType': typeof import("./pluggableElementTypes").CircularChordRendererType; '@jbrowse/core/pluggableElementTypes/renderers/BoxRendererType': typeof import("./pluggableElementTypes/renderers/BoxRendererType"); '@jbrowse/core/pluggableElementTypes/renderers/FeatureRendererType': typeof import("./pluggableElementTypes/renderers/FeatureRendererType"); '@jbrowse/core/pluggableElementTypes/renderers/RendererType': typeof import("./pluggableElementTypes/renderers/RendererType"); '@jbrowse/core/configuration': typeof import("./configuration"); '@jbrowse/core/util/types/mst': typeof import("./util/types/mst"); '@jbrowse/core/ui': typeof import("./ui"); '@jbrowse/core/util': typeof import("./util"); '@jbrowse/core/util/color': typeof import("./util/color"); '@jbrowse/core/util/layouts': typeof import("./util/layouts"); '@jbrowse/core/util/tracks': typeof import("./util/tracks"); '@jbrowse/core/util/Base1DViewModel': import("mobx-state-tree").IModelType<{ id: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<string>, [undefined]>; displayedRegions: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").IType<import("./util").Region[], import("./util").Region[], import("./util").Region[]>, [undefined]>; bpPerPx: import("mobx-state-tree").IType<number | undefined, number, number>; offsetPx: import("mobx-state-tree").IType<number | undefined, number, number>; interRegionPaddingWidth: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<number>, [undefined]>; minimumBlockWidth: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<number>, [undefined]>; }, { features: undefined | import("./util").Feature[]; volatileWidth: number; } & { setDisplayedRegions(regions: import("./util").Region[]): void; setBpPerPx(val: number): void; setVolatileWidth(width: number): void; } & { readonly width: number; readonly assemblyNames: string[]; readonly displayedRegionsTotalPx: number; readonly maxOffset: number; readonly minOffset: number; readonly totalBp: number; } & { readonly dynamicBlocks: import("./util/blockTypes").BlockSet; readonly staticBlocks: import("./util/blockTypes").BlockSet; readonly currBp: number; } & { pxToBp(px: number): { coord: number; index: number; refName: string; oob: boolean; assemblyName: string; offset: number; start: number; end: number; reversed?: boolean; }; bpToPx({ refName, coord, regionNumber, }: { refName: string; coord: number; regionNumber?: number; }): number | undefined; } & { setFeatures(features: import("./util").Feature[]): void; showAllRegions(): void; zoomOut(): void; zoomIn(): void; zoomTo(bpPerPx: number, offset?: number): number; scrollTo(offsetPx: number): number; centerAt(coord: number, refName: string | undefined, regionNumber: number): void; scroll(distance: number): number; } & { moveTo(start?: import("./util/Base1DUtils").BpOffset, end?: import("./util/Base1DUtils").BpOffset): void; }, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>; '@jbrowse/core/util/io': typeof import("./util/io"); '@jbrowse/core/util/mst-reflection': typeof import("./util/mst-reflection"); '@jbrowse/core/util/rxjs': typeof import("./util/rxjs"); '@jbrowse/core/BaseFeatureWidget/BaseFeatureDetail': { Attributes: import("react").ForwardRefExoticComponent<Omit<any, "ref"> & import("react").RefAttributes<unknown>>; FeatureDetails: import("react").ForwardRefExoticComponent<Omit<any, "ref"> & import("react").RefAttributes<unknown>>; BaseCard: import("react").ForwardRefExoticComponent<Omit<any, "ref"> & import("react").RefAttributes<unknown>>; BaseCoreDetails: import("react").LazyExoticComponent<typeof import("./BaseFeatureWidget/BaseFeatureDetail").BaseCoreDetails>; BaseAttributes: import("react").LazyExoticComponent<typeof import("./BaseFeatureWidget/BaseFeatureDetail").BaseAttributes>; }; '@jbrowse/core/data_adapters/BaseAdapter': typeof import("./data_adapters/BaseAdapter"); mobx: typeof import("mobx"); 'mobx-state-tree': typeof import("mobx-state-tree"); react: typeof import("react"); 'react/jsx-runtime': typeof import("react/jsx-runtime"); 'react-dom': typeof import("react-dom"); 'react-dom/client': typeof import("react-dom/client"); 'mobx-react': typeof import("mobx-react"); '@mui/x-data-grid': { useGridApiContext: typeof import("@mui/x-data-grid").useGridApiContext; useGridApiRef: <Api extends import("@mui/x-data-grid").GridApiCommon = import("@mui/x-data-grid/internals").GridApiCommunity>() => import("@mui/x-internals/types").RefObject<Api>; useGridRootProps: () => import("@mui/x-data-grid/internals").DataGridProcessedProps; }; '@mui/material/utils': typeof import("@mui/material/utils"); '@material-ui/core/utils': typeof import("@mui/material/utils"); 'tss-react/mui': { makeStyles: <Params = void, RuleNameSubsetReferencableInNestedSelectors extends string = never>(params?: { name?: string | Record<string, unknown> | undefined; uniqId?: string | undefined; } | undefined) => <RuleName extends string>(cssObjectByRuleNameOrGetCssObjectByRuleName: Record<RuleName, import("tss-react").CSSObject> | ((theme: import("@mui/material").Theme, params: Params, classes: Record<RuleNameSubsetReferencableInNestedSelectors, string>) => Record<RuleNameSubsetReferencableInNestedSelectors | RuleName, import("tss-react").CSSObject>)) => (params: Params, muiStyleOverridesParams?: { props: Record<string, unknown>; ownerState?: Record<string, unknown> | undefined; } | undefined) => { classes: Record<RuleName, string>; theme: import("@mui/material").Theme; css: import("tss-react").Css; cx: import("tss-react").Cx; }; }; '@material-ui/core': { useTheme: typeof import("@mui/material").useTheme; alpha: typeof import("@mui/system").alpha; makeStyles: (args: any) => () => Record<string, string>; }; '@mui/material': { alpha: typeof import("@mui/system").alpha; useTheme: typeof import("@mui/material").useTheme; createTheme: typeof import("@mui/material").createTheme; }; '@mui/material/styles': { MUIStyles: typeof import("@mui/material/styles"); makeStyles: (args: any) => () => Record<string, string>; }; '@material-ui/core/styles': { MUIStyles: typeof import("@mui/material/styles"); makeStyles: (args: any) => () => Record<string, string>; }; }; load: <FTYPE extends AnyFunction>(lib: FTYPE) => ReturnType<FTYPE>; jbrequire: (lib: keyof typeof ReExports | AnyFunction | { default: AnyFunction; }) => any; getRendererType(typeName: string): RendererType | undefined; getRendererTypes(): RendererType[]; getAdapterType(typeName: string): AdapterType | undefined; getTextSearchAdapterType(typeName: string): TextSearchAdapterType | undefined; getTrackType(typeName: string): TrackType | undefined; getDisplayType(typeName: string): DisplayType | undefined; getViewType(typeName: string): ViewType | undefined; getAddTrackWorkflow(typeName: string): AddTrackWorkflowType | undefined; getWidgetType(typeName: string): WidgetType | undefined; getConnectionType(typeName: string): ConnectionType | undefined; getRpcMethodType(methodName: string): RpcMethodType | undefined; getInternetAccountType(name: string): InternetAccountType | undefined; addRendererType(cb: (pm: PluginManager) => RendererType): this; addAdapterType(cb: (pm: PluginManager) => AdapterType): this; addTextSearchAdapterType(cb: (pm: PluginManager) => TextSearchAdapterType): this; addTrackType(cb: (pm: PluginManager) => TrackType): this; addDisplayType(cb: (pluginManager: PluginManager) => DisplayType): this; addViewType(cb: (pluginManager: PluginManager) => ViewType): this; addWidgetType(cb: (pm: PluginManager) => WidgetType): this; addConnectionType(cb: (pm: PluginManager) => ConnectionType): this; addRpcMethod(cb: (pm: PluginManager) => RpcMethodType): this; addInternetAccountType(cb: (pm: PluginManager) => InternetAccountType): this; addAddTrackWorkflowType(cb: (pm: PluginManager) => AddTrackWorkflowType): this; addToExtensionPoint<T>(extensionPointName: string, callback: (extendee: T, props: Record<string, unknown>) => T): void; evaluateExtensionPoint(extensionPointName: string, extendee: unknown, props?: Record<string, unknown>): unknown; evaluateAsyncExtensionPoint(extensionPointName: string, extendee: unknown, props?: Record<string, unknown>): Promise<unknown>; } export {};