---
lang: en
title: 'API docs: typeorm.typeormmixin'
keywords: LoopBack 4.0, LoopBack 4, Node.js, TypeScript, OpenAPI
sidebar: lb4_sidebar
editurl: https://github.com/strongloop/loopback-next/tree/master/extensions/typeorm
permalink: /doc/en/lb4/apidocs.typeorm.typeormmixin.html
---

<!-- Do not edit this file. It is automatically generated by API Documenter. -->

[Home](./index.md) &gt; [@loopback/typeorm](./typeorm.md) &gt; [TypeOrmMixin](./typeorm.typeormmixin.md)

## TypeOrmMixin() function

<b>Signature:</b>

```typescript
export declare function TypeOrmMixin<T extends MixinTarget<Application>>(superClass: T): {
    new (...args: any[]): {
        connectionManager: ConnectionManager;
        connection(connectionConfig: ConnectionOptions): loopbackContext.Binding<Connection>;
        migrateSchema(): Promise<void>;
        readonly options: loopbackContext.ApplicationConfig;
        readonly state: string;
        controller: <T_1>(controllerCtor: loopbackContext.Constructor<T_1>, nameOrOptions?: string | loopbackContext.BindingFromClassOptions | undefined) => loopbackContext.Binding<T_1>;
        server: <T_2 extends loopbackContext.Server>(ctor: loopbackContext.Constructor<T_2>, nameOrOptions?: string | loopbackContext.BindingFromClassOptions | undefined) => loopbackContext.Binding<T_2>;
        servers: <T_3 extends loopbackContext.Server>(ctors: loopbackContext.Constructor<T_3>[]) => loopbackContext.Binding<any>[];
        getServer: <T_4 extends loopbackContext.Server>(target: string | loopbackContext.Constructor<T_4>) => Promise<T_4>;
        start: () => Promise<void>;
        onStart: (fn: () => loopbackContext.ValueOrPromise<void>) => loopbackContext.Binding<loopbackContext.LifeCycleObserver>;
        stop: () => Promise<void>;
        onStop: (fn: () => loopbackContext.ValueOrPromise<void>) => loopbackContext.Binding<loopbackContext.LifeCycleObserver>;
        component: <T_5 extends loopbackContext.Component = loopbackContext.Component>(componentCtor: loopbackContext.Constructor<T_5>, nameOrOptions?: string | loopbackContext.BindingFromClassOptions | undefined) => loopbackContext.Binding<T_5>;
        setMetadata: (metadata: loopbackContext.ApplicationMetadata) => void;
        lifeCycleObserver: <T_6 extends loopbackContext.LifeCycleObserver>(ctor: loopbackContext.Constructor<T_6>, nameOrOptions?: string | loopbackContext.BindingFromClassOptions | undefined) => loopbackContext.Binding<T_6>;
        service: <S>(cls: loopbackContext.ServiceOrProviderClass<S>, nameOrOptions?: string | loopbackContext.ServiceOptions | undefined) => loopbackContext.Binding<S>;
        interceptor: (interceptor: loopbackContext.Interceptor | loopbackContext.Constructor<loopbackContext.Provider<loopbackContext.Interceptor>>, nameOrOptions?: string | loopbackContext.InterceptorBindingOptions | undefined) => loopbackContext.Binding<loopbackContext.Interceptor>;
        readonly name: string;
        readonly subscriptionManager: loopbackContext.ContextSubscriptionManager;
        scope: loopbackContext.BindingScope;
        readonly parent: loopbackContext.Context | undefined;
        emitEvent: <T_7 extends loopbackContext.ContextEvent>(type: string, event: T_7) => void;
        emitError: (err: unknown) => void;
        bind: <ValueType = any>(key: loopbackContext.BindingAddress<ValueType>) => loopbackContext.Binding<ValueType>;
        add: (binding: loopbackContext.Binding<unknown>) => loopbackContext.Application;
        configure: <ConfigValueType = any>(key?: string | loopbackContext.BindingKey<unknown> | undefined) => loopbackContext.Binding<ConfigValueType>;
        getConfigAsValueOrPromise: <ConfigValueType_1>(key: loopbackContext.BindingAddress<unknown>, propertyPath?: string | undefined, resolutionOptions?: loopbackContext.ResolutionOptions | undefined) => loopbackContext.ValueOrPromise<ConfigValueType_1 | undefined>;
        getConfig: <ConfigValueType_2>(key: loopbackContext.BindingAddress<unknown>, propertyPath?: string | undefined, resolutionOptions?: loopbackContext.ResolutionOptions | undefined) => Promise<ConfigValueType_2 | undefined>;
        getConfigSync: <ConfigValueType_3>(key: loopbackContext.BindingAddress<unknown>, propertyPath?: string | undefined, resolutionOptions?: loopbackContext.ResolutionOptions | undefined) => ConfigValueType_3 | undefined;
        unbind: (key: loopbackContext.BindingAddress<unknown>) => boolean;
        subscribe: (observer: loopbackContext.ContextEventObserver) => loopbackContext.Subscription;
        unsubscribe: (observer: loopbackContext.ContextEventObserver) => boolean;
        close: () => void;
        isSubscribed: (observer: loopbackContext.ContextObserver) => boolean;
        createView: <T_8 = unknown>(filter: loopbackContext.BindingFilter, comparator?: loopbackContext.BindingComparator | undefined) => loopbackContext.ContextView<T_8>;
        contains: (key: loopbackContext.BindingAddress<unknown>) => boolean;
        isBound: (key: loopbackContext.BindingAddress<unknown>) => boolean;
        getOwnerContext: (keyOrBinding: string | loopbackContext.BindingKey<unknown> | Readonly<loopbackContext.Binding<unknown>>) => loopbackContext.Context | undefined;
        getScopedContext: (scope: loopbackContext.BindingScope.APPLICATION | loopbackContext.BindingScope.SERVER | loopbackContext.BindingScope.REQUEST) => loopbackContext.Context | undefined;
        getResolutionContext: (binding: Readonly<loopbackContext.Binding<unknown>>) => loopbackContext.Context | undefined;
        isVisibleTo: (ctx: loopbackContext.Context) => boolean;
        find: <ValueType_1 = any>(pattern?: string | RegExp | loopbackContext.BindingFilter | undefined) => Readonly<loopbackContext.Binding<ValueType_1>>[];
        findByTag: <ValueType_2 = any>(tagFilter: string | RegExp | Record<string, any>) => Readonly<loopbackContext.Binding<ValueType_2>>[];
        get: {
            <ValueType_3>(keyWithPath: loopbackContext.BindingAddress<ValueType_3>, session?: loopbackContext.ResolutionSession | undefined): Promise<ValueType_3>;
            <ValueType_4>(keyWithPath: loopbackContext.BindingAddress<ValueType_4>, options: loopbackContext.ResolutionOptions): Promise<ValueType_4 | undefined>;
        };
        getSync: {
            <ValueType_5>(keyWithPath: loopbackContext.BindingAddress<ValueType_5>, session?: loopbackContext.ResolutionSession | undefined): ValueType_5;
            <ValueType_6>(keyWithPath: loopbackContext.BindingAddress<ValueType_6>, options?: loopbackContext.ResolutionOptions | undefined): ValueType_6 | undefined;
        };
        getBinding: {
            <ValueType_7 = any>(key: loopbackContext.BindingAddress<ValueType_7>): loopbackContext.Binding<ValueType_7>;
            <ValueType_8>(key: loopbackContext.BindingAddress<ValueType_8>, options?: {
                optional?: boolean | undefined;
            } | undefined): loopbackContext.Binding<ValueType_8> | undefined;
        };
        findOrCreateBinding: <T_9>(key: loopbackContext.BindingAddress<T_9>, policy?: loopbackContext.BindingCreationPolicy | undefined) => loopbackContext.Binding<T_9>;
        getValueOrPromise: <ValueType_9>(keyWithPath: loopbackContext.BindingAddress<ValueType_9>, optionsOrSession?: loopbackContext.ResolutionOptions | loopbackContext.ResolutionSession | undefined) => loopbackContext.ValueOrPromise<ValueType_9 | undefined>;
        toJSON: () => loopbackContext.JSONObject;
        inspect: (options?: loopbackContext.ContextInspectOptions | undefined) => loopbackContext.JSONObject;
        on: {
            (eventName: "bind" | "unbind", listener: loopbackContext.ContextEventListener): loopbackContext.Application;
            (event: string | symbol, listener: (...args: any[]) => void): loopbackContext.Application;
        };
        once: {
            (eventName: "bind" | "unbind", listener: loopbackContext.ContextEventListener): loopbackContext.Application;
            (event: string | symbol, listener: (...args: any[]) => void): loopbackContext.Application;
        };
        addListener: (event: string | symbol, listener: (...args: any[]) => void) => loopbackContext.Application;
        prependListener: (event: string | symbol, listener: (...args: any[]) => void) => loopbackContext.Application;
        prependOnceListener: (event: string | symbol, listener: (...args: any[]) => void) => loopbackContext.Application;
        removeListener: (event: string | symbol, listener: (...args: any[]) => void) => loopbackContext.Application;
        off: (event: string | symbol, listener: (...args: any[]) => void) => loopbackContext.Application;
        removeAllListeners: (event?: string | symbol | undefined) => loopbackContext.Application;
        setMaxListeners: (n: number) => loopbackContext.Application;
        getMaxListeners: () => number;
        listeners: (event: string | symbol) => Function[];
        rawListeners: (event: string | symbol) => Function[];
        emit: (event: string | symbol, ...args: any[]) => boolean;
        eventNames: () => (string | symbol)[];
        listenerCount: (type: string | symbol) => number;
    };
} & T;
```

## Parameters

|  Parameter | Type | Description |
|  --- | --- | --- |
|  superClass | T |  |

<b>Returns:</b>

{ new (...args: any\[\]): { connectionManager: ConnectionManager; connection(connectionConfig: ConnectionOptions): loopbackContext.[Binding](./context.binding.md)<!-- -->&lt;Connection&gt;; migrateSchema(): Promise&lt;void&gt;; readonly options: loopbackContext.[ApplicationConfig](./core.applicationconfig.md)<!-- -->; readonly state: string; controller: &lt;T\_1&gt;(controllerCtor: loopbackContext.[Constructor](./context.constructor.md)<!-- -->&lt;T\_1&gt;, nameOrOptions?: string \| loopbackContext.[BindingFromClassOptions](./context.bindingfromclassoptions.md) \| undefined) =&gt; loopbackContext.[Binding](./context.binding.md)<!-- -->&lt;T\_1&gt;; server: &lt;T\_2 extends loopbackContext.[Server](./core.server.md)<!-- -->&gt;(ctor: loopbackContext.[Constructor](./context.constructor.md)<!-- -->&lt;T\_2&gt;, nameOrOptions?: string \| loopbackContext.[BindingFromClassOptions](./context.bindingfromclassoptions.md) \| undefined) =&gt; loopbackContext.[Binding](./context.binding.md)<!-- -->&lt;T\_2&gt;; servers: &lt;T\_3 extends loopbackContext.[Server](./core.server.md)<!-- -->&gt;(ctors: loopbackContext.[Constructor](./context.constructor.md)<!-- -->&lt;T\_3&gt;\[\]) =&gt; loopbackContext.[Binding](./context.binding.md)<!-- -->&lt;any&gt;\[\]; getServer: &lt;T\_4 extends loopbackContext.[Server](./core.server.md)<!-- -->&gt;(target: string \| loopbackContext.[Constructor](./context.constructor.md)<!-- -->&lt;T\_4&gt;) =&gt; Promise&lt;T\_4&gt;; start: () =&gt; Promise&lt;void&gt;; onStart: (fn: () =&gt; loopbackContext.[ValueOrPromise](./context.valueorpromise.md)<!-- -->&lt;void&gt;) =&gt; loopbackContext.[Binding](./context.binding.md)<!-- -->&lt;loopbackContext.[LifeCycleObserver](./core.lifecycleobserver.md)<!-- -->&gt;; stop: () =&gt; Promise&lt;void&gt;; onStop: (fn: () =&gt; loopbackContext.[ValueOrPromise](./context.valueorpromise.md)<!-- -->&lt;void&gt;) =&gt; loopbackContext.[Binding](./context.binding.md)<!-- -->&lt;loopbackContext.[LifeCycleObserver](./core.lifecycleobserver.md)<!-- -->&gt;; component: &lt;T\_5 extends loopbackContext.[Component](./core.component.md) = loopbackContext.[Component](./core.component.md)<!-- -->&gt;(componentCtor: loopbackContext.[Constructor](./context.constructor.md)<!-- -->&lt;T\_5&gt;, nameOrOptions?: string \| loopbackContext.[BindingFromClassOptions](./context.bindingfromclassoptions.md) \| undefined) =&gt; loopbackContext.[Binding](./context.binding.md)<!-- -->&lt;T\_5&gt;; setMetadata: (metadata: loopbackContext.[ApplicationMetadata](./core.applicationmetadata.md)<!-- -->) =&gt; void; lifeCycleObserver: &lt;T\_6 extends loopbackContext.[LifeCycleObserver](./core.lifecycleobserver.md)<!-- -->&gt;(ctor: loopbackContext.[Constructor](./context.constructor.md)<!-- -->&lt;T\_6&gt;, nameOrOptions?: string \| loopbackContext.[BindingFromClassOptions](./context.bindingfromclassoptions.md) \| undefined) =&gt; loopbackContext.[Binding](./context.binding.md)<!-- -->&lt;T\_6&gt;; service: &lt;S&gt;(cls: loopbackContext.[ServiceOrProviderClass](./core.serviceorproviderclass.md)<!-- -->&lt;S&gt;, nameOrOptions?: string \| loopbackContext.[ServiceOptions](./core.serviceoptions.md) \| undefined) =&gt; loopbackContext.[Binding](./context.binding.md)<!-- -->&lt;S&gt;; interceptor: (interceptor: loopbackContext.[Interceptor](./context.interceptor.md) \| loopbackContext.[Constructor](./context.constructor.md)<!-- -->&lt;loopbackContext.[Provider](./context.provider.md)<!-- -->&lt;loopbackContext.[Interceptor](./context.interceptor.md)<!-- -->&gt;&gt;, nameOrOptions?: string \| loopbackContext.[InterceptorBindingOptions](./context.interceptorbindingoptions.md) \| undefined) =&gt; loopbackContext.[Binding](./context.binding.md)<!-- -->&lt;loopbackContext.[Interceptor](./context.interceptor.md)<!-- -->&gt;; readonly name: string; readonly subscriptionManager: loopbackContext.[ContextSubscriptionManager](./context.contextsubscriptionmanager.md)<!-- -->; scope: loopbackContext.[BindingScope](./context.bindingscope.md)<!-- -->; readonly parent: loopbackContext.[Context](./context.context.md) \| undefined; emitEvent: &lt;T\_7 extends loopbackContext.[ContextEvent](./context.contextevent.md)<!-- -->&gt;(type: string, event: T\_7) =&gt; void; emitError: (err: unknown) =&gt; void; bind: &lt;ValueType = any&gt;(key: loopbackContext.[BindingAddress](./context.bindingaddress.md)<!-- -->&lt;ValueType&gt;) =&gt; loopbackContext.[Binding](./context.binding.md)<!-- -->&lt;ValueType&gt;; add: (binding: loopbackContext.[Binding](./context.binding.md)<!-- -->&lt;unknown&gt;) =&gt; loopbackContext.[Application](./core.application.md)<!-- -->; configure: &lt;ConfigValueType = any&gt;(key?: string \| loopbackContext.[BindingKey](./context.bindingkey.md)<!-- -->&lt;unknown&gt; \| undefined) =&gt; loopbackContext.[Binding](./context.binding.md)<!-- -->&lt;ConfigValueType&gt;; getConfigAsValueOrPromise: &lt;ConfigValueType\_1&gt;(key: loopbackContext.[BindingAddress](./context.bindingaddress.md)<!-- -->&lt;unknown&gt;, propertyPath?: string \| undefined, resolutionOptions?: loopbackContext.[ResolutionOptions](./context.resolutionoptions.md) \| undefined) =&gt; loopbackContext.[ValueOrPromise](./context.valueorpromise.md)<!-- -->&lt;ConfigValueType\_1 \| undefined&gt;; getConfig: &lt;ConfigValueType\_2&gt;(key: loopbackContext.[BindingAddress](./context.bindingaddress.md)<!-- -->&lt;unknown&gt;, propertyPath?: string \| undefined, resolutionOptions?: loopbackContext.[ResolutionOptions](./context.resolutionoptions.md) \| undefined) =&gt; Promise&lt;ConfigValueType\_2 \| undefined&gt;; getConfigSync: &lt;ConfigValueType\_3&gt;(key: loopbackContext.[BindingAddress](./context.bindingaddress.md)<!-- -->&lt;unknown&gt;, propertyPath?: string \| undefined, resolutionOptions?: loopbackContext.[ResolutionOptions](./context.resolutionoptions.md) \| undefined) =&gt; ConfigValueType\_3 \| undefined; unbind: (key: loopbackContext.[BindingAddress](./context.bindingaddress.md)<!-- -->&lt;unknown&gt;) =&gt; boolean; subscribe: (observer: loopbackContext.[ContextEventObserver](./context.contexteventobserver.md)<!-- -->) =&gt; loopbackContext.[Subscription](./context.subscription.md)<!-- -->; unsubscribe: (observer: loopbackContext.[ContextEventObserver](./context.contexteventobserver.md)<!-- -->) =&gt; boolean; close: () =&gt; void; isSubscribed: (observer: loopbackContext.[ContextObserver](./context.contextobserver.md)<!-- -->) =&gt; boolean; createView: &lt;T\_8 = unknown&gt;(filter: loopbackContext.[BindingFilter](./context.bindingfilter.md)<!-- -->, comparator?: loopbackContext.[BindingComparator](./context.bindingcomparator.md) \| undefined) =&gt; loopbackContext.[ContextView](./context.contextview.md)<!-- -->&lt;T\_8&gt;; contains: (key: loopbackContext.[BindingAddress](./context.bindingaddress.md)<!-- -->&lt;unknown&gt;) =&gt; boolean; isBound: (key: loopbackContext.[BindingAddress](./context.bindingaddress.md)<!-- -->&lt;unknown&gt;) =&gt; boolean; getOwnerContext: (keyOrBinding: string \| loopbackContext.[BindingKey](./context.bindingkey.md)<!-- -->&lt;unknown&gt; \| Readonly&lt;loopbackContext.[Binding](./context.binding.md)<!-- -->&lt;unknown&gt;&gt;) =&gt; loopbackContext.[Context](./context.context.md) \| undefined; getScopedContext: (scope: loopbackContext.[BindingScope.APPLICATION](./context.bindingscope.application.md) \| loopbackContext.[BindingScope.SERVER](./context.bindingscope.server.md) \| loopbackContext.[BindingScope.REQUEST](./context.bindingscope.request.md)<!-- -->) =&gt; loopbackContext.[Context](./context.context.md) \| undefined; getResolutionContext: (binding: Readonly&lt;loopbackContext.[Binding](./context.binding.md)<!-- -->&lt;unknown&gt;&gt;) =&gt; loopbackContext.[Context](./context.context.md) \| undefined; isVisibleTo: (ctx: loopbackContext.[Context](./context.context.md)<!-- -->) =&gt; boolean; find: &lt;ValueType\_1 = any&gt;(pattern?: string \| RegExp \| loopbackContext.[BindingFilter](./context.bindingfilter.md) \| undefined) =&gt; Readonly&lt;loopbackContext.[Binding](./context.binding.md)<!-- -->&lt;ValueType\_1&gt;&gt;\[\]; findByTag: &lt;ValueType\_2 = any&gt;(tagFilter: string \| RegExp \| Record&lt;string, any&gt;) =&gt; Readonly&lt;loopbackContext.[Binding](./context.binding.md)<!-- -->&lt;ValueType\_2&gt;&gt;\[\]; get: { &lt;ValueType\_3&gt;(keyWithPath: loopbackContext.[BindingAddress](./context.bindingaddress.md)<!-- -->&lt;ValueType\_3&gt;, session?: loopbackContext.[ResolutionSession](./context.resolutionsession.md) \| undefined): Promise&lt;ValueType\_3&gt;; &lt;ValueType\_4&gt;(keyWithPath: loopbackContext.[BindingAddress](./context.bindingaddress.md)<!-- -->&lt;ValueType\_4&gt;, options: loopbackContext.[ResolutionOptions](./context.resolutionoptions.md)<!-- -->): Promise&lt;ValueType\_4 \| undefined&gt;; }; getSync: { &lt;ValueType\_5&gt;(keyWithPath: loopbackContext.[BindingAddress](./context.bindingaddress.md)<!-- -->&lt;ValueType\_5&gt;, session?: loopbackContext.[ResolutionSession](./context.resolutionsession.md) \| undefined): ValueType\_5; &lt;ValueType\_6&gt;(keyWithPath: loopbackContext.[BindingAddress](./context.bindingaddress.md)<!-- -->&lt;ValueType\_6&gt;, options?: loopbackContext.[ResolutionOptions](./context.resolutionoptions.md) \| undefined): ValueType\_6 \| undefined; }; getBinding: { &lt;ValueType\_7 = any&gt;(key: loopbackContext.[BindingAddress](./context.bindingaddress.md)<!-- -->&lt;ValueType\_7&gt;): loopbackContext.[Binding](./context.binding.md)<!-- -->&lt;ValueType\_7&gt;; &lt;ValueType\_8&gt;(key: loopbackContext.[BindingAddress](./context.bindingaddress.md)<!-- -->&lt;ValueType\_8&gt;, options?: { optional?: boolean \| undefined; } \| undefined): loopbackContext.[Binding](./context.binding.md)<!-- -->&lt;ValueType\_8&gt; \| undefined; }; findOrCreateBinding: &lt;T\_9&gt;(key: loopbackContext.[BindingAddress](./context.bindingaddress.md)<!-- -->&lt;T\_9&gt;, policy?: loopbackContext.[BindingCreationPolicy](./context.bindingcreationpolicy.md) \| undefined) =&gt; loopbackContext.[Binding](./context.binding.md)<!-- -->&lt;T\_9&gt;; getValueOrPromise: &lt;ValueType\_9&gt;(keyWithPath: loopbackContext.[BindingAddress](./context.bindingaddress.md)<!-- -->&lt;ValueType\_9&gt;, optionsOrSession?: loopbackContext.[ResolutionOptions](./context.resolutionoptions.md) \| loopbackContext.[ResolutionSession](./context.resolutionsession.md) \| undefined) =&gt; loopbackContext.[ValueOrPromise](./context.valueorpromise.md)<!-- -->&lt;ValueType\_9 \| undefined&gt;; toJSON: () =&gt; loopbackContext.[JSONObject](./context.jsonobject.md)<!-- -->; inspect: (options?: loopbackContext.[ContextInspectOptions](./context.contextinspectoptions.md) \| undefined) =&gt; loopbackContext.[JSONObject](./context.jsonobject.md)<!-- -->; on: { (eventName: "bind" \| "unbind", listener: loopbackContext.[ContextEventListener](./context.contexteventlistener.md)<!-- -->): loopbackContext.[Application](./core.application.md)<!-- -->; (event: string \| symbol, listener: (...args: any\[\]) =&gt; void): loopbackContext.[Application](./core.application.md)<!-- -->; }; once: { (eventName: "bind" \| "unbind", listener: loopbackContext.[ContextEventListener](./context.contexteventlistener.md)<!-- -->): loopbackContext.[Application](./core.application.md)<!-- -->; (event: string \| symbol, listener: (...args: any\[\]) =&gt; void): loopbackContext.[Application](./core.application.md)<!-- -->; }; addListener: (event: string \| symbol, listener: (...args: any\[\]) =&gt; void) =&gt; loopbackContext.[Application](./core.application.md)<!-- -->; prependListener: (event: string \| symbol, listener: (...args: any\[\]) =&gt; void) =&gt; loopbackContext.[Application](./core.application.md)<!-- -->; prependOnceListener: (event: string \| symbol, listener: (...args: any\[\]) =&gt; void) =&gt; loopbackContext.[Application](./core.application.md)<!-- -->; removeListener: (event: string \| symbol, listener: (...args: any\[\]) =&gt; void) =&gt; loopbackContext.[Application](./core.application.md)<!-- -->; off: (event: string \| symbol, listener: (...args: any\[\]) =&gt; void) =&gt; loopbackContext.[Application](./core.application.md)<!-- -->; removeAllListeners: (event?: string \| symbol \| undefined) =&gt; loopbackContext.[Application](./core.application.md)<!-- -->; setMaxListeners: (n: number) =&gt; loopbackContext.[Application](./core.application.md)<!-- -->; getMaxListeners: () =&gt; number; listeners: (event: string \| symbol) =&gt; Function\[\]; rawListeners: (event: string \| symbol) =&gt; Function\[\]; emit: (event: string \| symbol, ...args: any\[\]) =&gt; boolean; eventNames: () =&gt; (string \| symbol)\[\]; listenerCount: (type: string \| symbol) =&gt; number; }; } &amp; T


