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