| 
									
										
										
										
											2018-03-14 13:24:27 -07:00
										 |  |  | export declare function createCustomElement<P>(component: Type<any>, config: NgElementConfig): NgElementConstructor<P>; | 
					
						
							| 
									
										
										
										
											2018-02-28 09:45:11 -08:00
										 |  |  | 
 | 
					
						
							|  |  |  | 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; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | export interface NgElementConfig { | 
					
						
							| 
									
										
										
										
											2018-03-01 22:34:21 -08:00
										 |  |  |     injector: Injector; | 
					
						
							|  |  |  |     strategyFactory?: NgElementStrategyFactory; | 
					
						
							| 
									
										
										
										
											2018-02-28 09:45:11 -08:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | export interface NgElementConstructor<P> { | 
					
						
							|  |  |  |     readonly observedAttributes: string[]; | 
					
						
							| 
									
										
										
										
											2018-03-06 14:02:25 -08:00
										 |  |  |     new (injector: Injector): NgElement & WithProperties<P>; | 
					
						
							| 
									
										
										
										
											2018-02-28 09:45:11 -08:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | export interface NgElementStrategy { | 
					
						
							|  |  |  |     events: Observable<NgElementStrategyEvent>; | 
					
						
							|  |  |  |     connect(element: HTMLElement): void; | 
					
						
							|  |  |  |     disconnect(): void; | 
					
						
							| 
									
										
										
										
											2018-03-02 10:08:16 -08:00
										 |  |  |     getInputValue(propName: string): any; | 
					
						
							|  |  |  |     setInputValue(propName: string, value: string): void; | 
					
						
							| 
									
										
										
										
											2018-02-28 09:45:11 -08:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | export interface NgElementStrategyEvent { | 
					
						
							|  |  |  |     name: string; | 
					
						
							|  |  |  |     value: any; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | export interface NgElementStrategyFactory { | 
					
						
							| 
									
										
										
										
											2018-03-06 14:02:25 -08:00
										 |  |  |     create(injector: Injector): NgElementStrategy; | 
					
						
							| 
									
										
										
										
											2018-02-28 09:45:11 -08:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | export declare const VERSION: Version; | 
					
						
							| 
									
										
										
										
											2018-03-02 10:08:16 -08:00
										 |  |  | 
 | 
					
						
							|  |  |  | export declare type WithProperties<P> = { | 
					
						
							|  |  |  |     [property in keyof P]: P[property]; | 
					
						
							|  |  |  | }; |