Configuration.d.ts 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
  1. import { HandlerConfig, FallbackConfig } from './MapHandler.js';
  2. import { StackItemClass } from './StackItem.js';
  3. import { TagsClass } from './Tags.js';
  4. import { OptionList } from '../../util/Options.js';
  5. import { SubHandlers } from './MapHandler.js';
  6. import { FunctionList } from '../../util/FunctionList.js';
  7. import { TeX } from '../tex.js';
  8. import { PrioritizedList } from '../../util/PrioritizedList.js';
  9. export declare type StackItemConfig = {
  10. [kind: string]: StackItemClass;
  11. };
  12. export declare type TagsConfig = {
  13. [kind: string]: TagsClass;
  14. };
  15. export declare type Processor<T> = [T, number];
  16. export declare type ProtoProcessor<T> = Processor<T> | T;
  17. export declare type ProcessorList = Processor<Function>[];
  18. export declare type ConfigMethod = (c: ParserConfiguration, j: TeX<any, any, any>) => void;
  19. export declare type InitMethod = (c: ParserConfiguration) => void;
  20. export declare class Configuration {
  21. readonly name: string;
  22. readonly handler: HandlerConfig;
  23. readonly fallback: FallbackConfig;
  24. readonly items: StackItemConfig;
  25. readonly tags: TagsConfig;
  26. readonly options: OptionList;
  27. readonly nodes: {
  28. [key: string]: any;
  29. };
  30. readonly preprocessors: ProcessorList;
  31. readonly postprocessors: ProcessorList;
  32. readonly initMethod: Processor<InitMethod>;
  33. readonly configMethod: Processor<ConfigMethod>;
  34. priority: number;
  35. readonly parser: string;
  36. private static makeProcessor;
  37. private static _create;
  38. static create(name: string, config?: {
  39. handler?: HandlerConfig;
  40. fallback?: FallbackConfig;
  41. items?: StackItemConfig;
  42. tags?: TagsConfig;
  43. options?: OptionList;
  44. nodes?: {
  45. [key: string]: any;
  46. };
  47. preprocessors?: ProtoProcessor<Function>[];
  48. postprocessors?: ProtoProcessor<Function>[];
  49. init?: ProtoProcessor<InitMethod>;
  50. config?: ProtoProcessor<ConfigMethod>;
  51. priority?: number;
  52. parser?: string;
  53. }): Configuration;
  54. static local(config?: {
  55. handler?: HandlerConfig;
  56. fallback?: FallbackConfig;
  57. items?: StackItemConfig;
  58. tags?: TagsConfig;
  59. options?: OptionList;
  60. nodes?: {
  61. [key: string]: any;
  62. };
  63. preprocessors?: ProtoProcessor<Function>[];
  64. postprocessors?: ProtoProcessor<Function>[];
  65. init?: ProtoProcessor<InitMethod>;
  66. config?: ProtoProcessor<ConfigMethod>;
  67. priority?: number;
  68. parser?: string;
  69. }): Configuration;
  70. private constructor();
  71. get init(): InitMethod;
  72. get config(): ConfigMethod;
  73. }
  74. export declare namespace ConfigurationHandler {
  75. let set: (name: string, map: Configuration) => void;
  76. let get: (name: string) => Configuration;
  77. let keys: () => IterableIterator<string>;
  78. }
  79. export declare class ParserConfiguration {
  80. protected initMethod: FunctionList;
  81. protected configMethod: FunctionList;
  82. protected configurations: PrioritizedList<Configuration>;
  83. protected parsers: string[];
  84. handlers: SubHandlers;
  85. items: StackItemConfig;
  86. tags: TagsConfig;
  87. options: OptionList;
  88. nodes: {
  89. [key: string]: any;
  90. };
  91. constructor(packages: (string | [string, number])[], parsers?: string[]);
  92. init(): void;
  93. config(jax: TeX<any, any, any>): void;
  94. addPackage(pkg: (string | [string, number])): void;
  95. add(name: string, jax: TeX<any, any, any>, options?: OptionList): void;
  96. protected getPackage(name: string): Configuration;
  97. append(config: Configuration, priority?: number): void;
  98. private addFilters;
  99. }