d0fbadd733626f781344d1d863e32dfc1d7d35f325b0377afe2c4a5de6f5694902bfea71e58e4747da8e12cb51f7d94c2e2641709cac0418bf3d982f70f2fb 1.5 KB

1234567891011121314151617181920212223242526272829303132
  1. import { ClassManager } from './clazz.js';
  2. import { ComponentOption, ComponentMainType, ComponentSubType } from './types.js';
  3. /**
  4. * @public
  5. * @param {string} type
  6. * @return {string}
  7. */
  8. export declare function getUID(type: string): string;
  9. export interface SubTypeDefaulter {
  10. (option: ComponentOption): ComponentSubType;
  11. }
  12. export interface SubTypeDefaulterManager {
  13. registerSubTypeDefaulter: (componentType: string, defaulter: SubTypeDefaulter) => void;
  14. determineSubType: (componentType: string, option: ComponentOption) => string;
  15. }
  16. /**
  17. * Implements `SubTypeDefaulterManager` for `target`.
  18. */
  19. export declare function enableSubTypeDefaulter(target: SubTypeDefaulterManager & ClassManager): void;
  20. export interface TopologicalTravelable<T> {
  21. topologicalTravel: (targetNameList: ComponentMainType[], fullNameList: ComponentMainType[], callback: (this: T, mainType: string, dependencies: string[]) => void, context?: T) => void;
  22. }
  23. /**
  24. * Implements `TopologicalTravelable<any>` for `entity`.
  25. *
  26. * Topological travel on Activity Network (Activity On Vertices).
  27. * Dependencies is defined in Model.prototype.dependencies, like ['xAxis', 'yAxis'].
  28. * If 'xAxis' or 'yAxis' is absent in componentTypeList, just ignore it in topology.
  29. * If there is circular dependencey, Error will be thrown.
  30. */
  31. export declare function enableTopologicalTravel<T>(entity: TopologicalTravelable<T>, dependencyGetter: (name: ComponentMainType) => ComponentMainType[]): void;
  32. export declare function inheritDefaultOption<T, K>(superOption: T, subOption: K): K;