/** @experimental */ export declare function createNgElementConstructor
(component: Type ;
/** @experimental */
export declare abstract class NgElement extends HTMLElement {
protected ngElementEventsSubscription: Subscription | null;
protected ngElementStrategy: NgElementStrategy;
abstract attributeChangedCallback(attrName: string, oldValue: string | null, newValue: string, namespace?: string): void;
abstract connectedCallback(): void;
abstract disconnectedCallback(): void;
}
/** @experimental */
export interface NgElementConfig {
attributeToPropertyInputs?: {
[key: string]: string;
};
injector: Injector;
strategyFactory?: NgElementStrategyFactory;
}
/** @experimental */
export interface NgElementConstructor {
readonly observedAttributes: string[];
new (injector: Injector): NgElement & WithProperties ;
}
/** @experimental */
export interface NgElementStrategy {
events: Observable = {
[property in keyof P]: P[property];
};