/** * @license * Copyright 2020 Google LLC * SPDX-License-Identifier: Apache-2.0 */ import type { Abstract } from './events/events_abstract.js'; import type { Field } from './field.js'; import type { Input } from './inputs/input.js'; import type { IConnectionChecker } from './interfaces/i_connection_checker.js'; import type { IConnectionPreviewer } from './interfaces/i_connection_previewer.js'; import type { ICopyable } from './interfaces/i_copyable.js'; import type { IDragger } from './interfaces/i_dragger.js'; import type { IFlyout } from './interfaces/i_flyout.js'; import type { IFlyoutInflater } from './interfaces/i_flyout_inflater.js'; import type { IIcon } from './interfaces/i_icon.js'; import type { IMetricsManager } from './interfaces/i_metrics_manager.js'; import type { IPaster } from './interfaces/i_paster.js'; import type { ISerializer } from './interfaces/i_serializer.js'; import type { IToolbox } from './interfaces/i_toolbox.js'; import type { IVariableMap } from './interfaces/i_variable_map.js'; import type { IVariableModel, IVariableModelStatic, IVariableState } from './interfaces/i_variable_model.js'; import type { LineCursor } from './keyboard_nav/line_cursor.js'; import type { Options } from './options.js'; import type { Renderer } from './renderers/common/renderer.js'; import type { Theme } from './theme.js'; import type { ToolboxItem } from './toolbox/toolbox_item.js'; export declare const TEST_ONLY: { typeMap: { [key: string]: { [key: string]: any; }; }; }; /** * The string used to register the default class for a type of plugin. */ export declare const DEFAULT = "default"; /** * A name with the type of the element stored in the generic. */ export declare class Type<_T> { private readonly name; /** @param name The name of the registry type. */ constructor(name: string); /** * Returns the name of the type. * * @returns The name. */ toString(): string; static CONNECTION_CHECKER: Type; static CONNECTION_PREVIEWER: Type; static CURSOR: Type; static EVENT: Type; static FIELD: Type>; static INPUT: Type; static RENDERER: Type; static TOOLBOX: Type; static THEME: Type; static TOOLBOX_ITEM: Type; static FLYOUTS_VERTICAL_TOOLBOX: Type; static FLYOUTS_HORIZONTAL_TOOLBOX: Type; static FLYOUT_INFLATER: Type; static METRICS_MANAGER: Type; /** * Type for an IDragger. Formerly behavior was mostly covered by * BlockDraggeers, which is why the name is inaccurate. */ static BLOCK_DRAGGER: Type; /** @internal */ static SERIALIZER: Type; /** @internal */ static ICON: Type; /** @internal */ static PASTER: Type>>; static VARIABLE_MODEL: Type & IVariableModel>; static VARIABLE_MAP: Type>>; } /** * Registers a class based on a type and name. * * @param type The type of the plugin. * (e.g. Field, Renderer) * @param name The plugin's name. (Ex. field_angle, geras) * @param registryItem The class or object to register. * @param opt_allowOverrides True to prevent an error when overriding an already * registered item. * @throws {Error} if the type or name is empty, a name with the given type has * already been registered, or if the given class or object is not valid for * its type. */ export declare function register(type: string | Type, name: string, registryItem: (new (...p1: any[]) => T) | null | any, opt_allowOverrides?: boolean): void; /** * Unregisters the registry item with the given type and name. * * @param type The type of the plugin. * (e.g. Field, Renderer) * @param name The plugin's name. (Ex. field_angle, geras) */ export declare function unregister(type: string | Type, name: string): void; /** * Returns whether or not the registry contains an item with the given type and * name. * * @param type The type of the plugin. * (e.g. Field, Renderer) * @param name The plugin's name. (Ex. field_angle, geras) * @returns True if the registry has an item with the given type and name, false * otherwise. */ export declare function hasItem(type: string | Type, name: string): boolean; /** * Gets the class for the given name and type. * * @param type The type of the plugin. * (e.g. Field, Renderer) * @param name The plugin's name. (Ex. field_angle, geras) * @param opt_throwIfMissing Whether or not to throw an error if we are unable * to find the plugin. * @returns The class with the given name and type or null if none exists. */ export declare function getClass(type: string | Type, name: string, opt_throwIfMissing?: boolean): (new (...p1: any[]) => T) | null; /** * Gets the object for the given name and type. * * @param type The type of the plugin. * (e.g. Category) * @param name The plugin's name. (Ex. logic_category) * @param opt_throwIfMissing Whether or not to throw an error if we are unable * to find the object. * @returns The object with the given name and type or null if none exists. */ export declare function getObject(type: string | Type, name: string, opt_throwIfMissing?: boolean): T | null; /** * Returns a map of items registered with the given type. * * @param type The type of the plugin. (e.g. Category) * @param opt_cased Whether or not to return a map with cased keys (rather than * caseless keys). False by default. * @param opt_throwIfMissing Whether or not to throw an error if we are unable * to find the object. False by default. * @returns A map of objects with the given type, or null if none exists. */ export declare function getAllItems(type: string | Type, opt_cased?: boolean, opt_throwIfMissing?: boolean): { [key: string]: T | null | (new (...p1: any[]) => T); } | null; /** * Gets the class from Blockly options for the given type. * This is used for plugins that override a built in feature. (e.g. Toolbox) * * @param type The type of the plugin. * @param options The option object to check for the given plugin. * @param opt_throwIfMissing Whether or not to throw an error if we are unable * to find the plugin. * @returns The class for the plugin. */ export declare function getClassFromOptions(type: Type, options: Options, opt_throwIfMissing?: boolean): (new (...p1: any[]) => T) | null; //# sourceMappingURL=registry.d.ts.map