import { type Observable } from 'rxjs'; export interface TuiTypedEventTarget { addEventListener(type: string, listener: ((evt: E) => void) | null, options?: AddEventListenerOptions | boolean): void; removeEventListener(type: string, listener?: ((evt: E) => void) | null, options?: EventListenerOptions | boolean): void; } /** * Wrapper around {@link Event} to add typings to target and currentTarget. */ export type TuiEventWith> = G & { readonly currentTarget: T; }; export declare function tuiTypedFromEvent(target: Window, event: E, options?: AddEventListenerOptions): Observable>; export declare function tuiTypedFromEvent(target: Document, event: E, options?: AddEventListenerOptions): Observable>; export declare function tuiTypedFromEvent(target: T, event: E, options?: AddEventListenerOptions): Observable>; export declare function tuiTypedFromEvent>>(target: T, event: string, options?: AddEventListenerOptions): Observable>; export declare function tuiTypedFromEvent(target: TuiTypedEventTarget, event: string, options?: AddEventListenerOptions): Observable;