## API Report File for "@angular/elements" > Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/). ```ts import { Injector } from '@angular/core'; import { Observable } from 'rxjs'; import { Subscription } from 'rxjs'; import { Type } from '@angular/core'; import { Version } from '@angular/core'; // @public export function createCustomElement
(component: Type ;
// @public
export abstract class NgElement extends HTMLElement {
abstract attributeChangedCallback(attrName: string, oldValue: string | null, newValue: string, namespace?: string): void;
abstract connectedCallback(): void;
abstract disconnectedCallback(): void;
protected ngElementEventsSubscription: Subscription | null;
protected abstract ngElementStrategy: NgElementStrategy;
}
// @public
export interface NgElementConfig {
injector: Injector;
strategyFactory?: NgElementStrategyFactory;
}
// @public
export interface NgElementConstructor {
new (injector?: Injector): NgElement & WithProperties ;
readonly observedAttributes: string[];
}
// @public
export interface NgElementStrategy {
// (undocumented)
connect(element: HTMLElement): void;
// (undocumented)
disconnect(): void;
// (undocumented)
events: Observable = {
[property in keyof P]: P[property];
};
// (No @packageDocumentation comment for this package)
```