| import { ClassManager } from './clazz.js'; | 
| import { ComponentOption, ComponentMainType, ComponentSubType } from './types.js'; | 
| /** | 
|  * @public | 
|  * @param {string} type | 
|  * @return {string} | 
|  */ | 
| export declare function getUID(type: string): string; | 
| export interface SubTypeDefaulter { | 
|     (option: ComponentOption): ComponentSubType; | 
| } | 
| export interface SubTypeDefaulterManager { | 
|     registerSubTypeDefaulter: (componentType: string, defaulter: SubTypeDefaulter) => void; | 
|     determineSubType: (componentType: string, option: ComponentOption) => string; | 
| } | 
| /** | 
|  * Implements `SubTypeDefaulterManager` for `target`. | 
|  */ | 
| export declare function enableSubTypeDefaulter(target: SubTypeDefaulterManager & ClassManager): void; | 
| export interface TopologicalTravelable<T> { | 
|     topologicalTravel: (targetNameList: ComponentMainType[], fullNameList: ComponentMainType[], callback: (this: T, mainType: string, dependencies: string[]) => void, context?: T) => void; | 
| } | 
| /** | 
|  * Implements `TopologicalTravelable<any>` for `entity`. | 
|  * | 
|  * Topological travel on Activity Network (Activity On Vertices). | 
|  * Dependencies is defined in Model.prototype.dependencies, like ['xAxis', 'yAxis']. | 
|  * If 'xAxis' or 'yAxis' is absent in componentTypeList, just ignore it in topology. | 
|  * If there is circular dependencey, Error will be thrown. | 
|  */ | 
| export declare function enableTopologicalTravel<T>(entity: TopologicalTravelable<T>, dependencyGetter: (name: ComponentMainType) => ComponentMainType[]): void; | 
| export declare function inheritDefaultOption<T, K>(superOption: T, subOption: K): K; |