import { DebugElement, ElementRef, Type, EventEmitter, OnDestroy } from '@angular/core'; import { DOMSelector } from './dom-selectors'; import { Token } from './token'; declare type OptionalPropertyNames = { [K in keyof T]-?: undefined extends T[K] ? K : never; }[keyof T]; declare type OptionalProperties = Pick>; export declare type OptionalsRequired = Required> & Partial; export declare type SpecElement = string | Element | DebugElement | ElementRef | Window | Document | DOMSelector; export declare type QueryType = Type | DOMSelector | string; export interface QueryOptions { read?: Token; root?: boolean; } export declare type EventEmitterType

= P extends EventEmitter ? T : never; export declare type KeysMatching = { [K in keyof T]: T[K] extends V ? K : never; }[keyof T]; export declare type SelectOptions = string | string[] | HTMLOptionElement | HTMLOptionElement[]; export interface KeyboardEventOptions { key: string; keyCode: number; } export declare function doesServiceImplementsOnDestroy(testedService: S): testedService is S & OnDestroy; export declare function isString(value: any): value is string; export declare function isNumber(value: any): value is number; export declare function isType(v: any): v is Type; export declare function isHTMLOptionElementArray(value: any): value is HTMLOptionElement[]; export declare function isObject(v: any): v is object; export {};