config.d.ts 1.2 KB

123456789101112131415161718192021222324252627282930313233
  1. import { GlobalMountOptions, Stub } from './types';
  2. import { VueWrapper } from './vueWrapper';
  3. import { DOMWrapper } from './domWrapper';
  4. import { CustomCreateStub } from './vnodeTransformers/stubComponentsTransformer';
  5. export interface GlobalConfigOptions {
  6. global: Required<Omit<GlobalMountOptions, 'stubs'>> & {
  7. stubs: Record<string, Stub>;
  8. };
  9. plugins: {
  10. VueWrapper: Pluggable<VueWrapper>;
  11. DOMWrapper: Pluggable<DOMWrapper<Node>>;
  12. createStubs?: CustomCreateStub;
  13. };
  14. /**
  15. * @deprecated use global.
  16. */
  17. renderStubDefaultSlot?: boolean;
  18. }
  19. interface Plugin<Instance, O> {
  20. handler(instance: Instance): Record<string, any>;
  21. handler(instance: Instance, options: O): Record<string, any>;
  22. options: O;
  23. }
  24. declare class Pluggable<Instance = DOMWrapper<Node>> {
  25. installedPlugins: Plugin<Instance, any>[];
  26. install<O>(handler: (instance: Instance) => Record<string, any>): void;
  27. install<O>(handler: (instance: Instance, options: O) => Record<string, any>, options: O): void;
  28. extend(instance: Instance): void;
  29. /** For testing */
  30. reset(): void;
  31. }
  32. export declare const config: GlobalConfigOptions;
  33. export {};