@jbrowse/core
Version:
JBrowse 2 core libraries used by plugins
36 lines (35 loc) • 2.94 kB
TypeScript
import type { ConfigSlotDefinition } from './configurationSlot';
import type { AnyConfigurationSchemaType } from './types';
import type { IAnyType } from 'mobx-state-tree';
export type { AnyConfigurationModel, AnyConfigurationSchemaType, AnyConfigurationSlot, AnyConfigurationSlotType, } from './types';
export interface ConfigurationSchemaDefinition {
[n: string]: ConfigSlotDefinition | ConfigurationSchemaDefinition | string | number | IAnyType;
}
export interface ConfigurationSchemaOptions<BASE_SCHEMA extends AnyConfigurationSchemaType | undefined, EXPLICIT_IDENTIFIER extends string | undefined> {
explicitlyTyped?: boolean;
explicitIdentifier?: EXPLICIT_IDENTIFIER;
implicitIdentifier?: string | boolean;
baseConfiguration?: BASE_SCHEMA;
actions?: (self: unknown) => any;
views?: (self: unknown) => any;
extend?: (self: unknown) => any;
preProcessSnapshot?: (snapshot: Record<string, unknown>) => Record<string, unknown>;
}
declare function makeConfigurationSchemaModel<DEFINITION extends ConfigurationSchemaDefinition, OPTIONS extends ConfigurationSchemaOptions<any, any>>(modelName: string, schemaDefinition: DEFINITION, options: OPTIONS): import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").IModelType<Record<string, any>, {
setSubschema(slotName: string, data: Record<string, unknown>): Record<string, unknown> | ({
[x: string]: any;
} & import("mobx-state-tree/dist/internal").NonEmptyObject & {
setSubschema(slotName: string, data: Record<string, unknown>): Record<string, unknown> | ({
[x: string]: any;
} & import("mobx-state-tree/dist/internal").NonEmptyObject & any & import("mobx-state-tree").IStateTreeNode<AnyConfigurationSchemaType>);
} & import("mobx-state-tree").IStateTreeNode<AnyConfigurationSchemaType>);
}, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>, [undefined]>;
export interface ConfigurationSchemaType<DEFINITION extends ConfigurationSchemaDefinition, OPTIONS extends ConfigurationSchemaOptions<any, any>> extends ReturnType<typeof makeConfigurationSchemaModel<DEFINITION, OPTIONS>> {
isJBrowseConfigurationSchema: boolean;
jbrowseSchemaDefinition: DEFINITION;
jbrowseSchemaOptions: OPTIONS;
type: string;
[key: string]: unknown;
}
export declare function ConfigurationSchema<DEFINITION extends ConfigurationSchemaDefinition, OPTIONS extends ConfigurationSchemaOptions<BASE_SCHEMA, EXPLICIT_IDENTIFIER>, BASE_SCHEMA extends AnyConfigurationSchemaType | undefined = undefined, EXPLICIT_IDENTIFIER extends string | undefined = undefined>(modelName: string, inputSchemaDefinition: DEFINITION, inputOptions?: ConfigurationSchemaOptions<BASE_SCHEMA, EXPLICIT_IDENTIFIER>): ConfigurationSchemaType<DEFINITION, OPTIONS>;
export declare function ConfigurationReference<SCHEMATYPE extends AnyConfigurationSchemaType>(schemaType: SCHEMATYPE): SCHEMATYPE;