import { BaseSyntheticEvent, FocusEvent as ReactFocusEvent } from 'react'; /** Returns true if focus is leaving `currentTarget`, to another element OR window. */ export declare function isFocusOut(event: ReactFocusEvent): boolean; /** Returns true if focus is moving to another element in the same window. */ export declare function isFocusLost(event: ReactFocusEvent): boolean; export interface TargetProps { id?: string; name?: string; value?: T; } export declare class CactusEventTarget implements EventTarget { id?: string; name?: string; value: T | null; constructor(props: TargetProps); addEventListener(): void; removeEventListener(): void; dispatchEvent(): boolean; } declare class BaseEvent implements BaseSyntheticEvent { private reactEvent; currentTarget: T; target: T; bubbles: boolean; cancelable: boolean; type: string; constructor(type: string, target: T, originalEvent: BaseSyntheticEvent); get nativeEvent(): E; get eventPhase(): number; get isTrusted(): boolean; get timeStamp(): number; get defaultPrevented(): boolean; preventDefault(): void; isDefaultPrevented(): boolean; stopPropagation(): void; isPropagationStopped(): boolean; persist(): void; } /** This is compatible with `React.ChangeEvent` and `React.FormEvent`. */ export declare class CactusChangeEvent extends BaseEvent> { constructor(target: CactusEventTarget, originalEvent: BaseSyntheticEvent); } /** This is compatible with `React.FocusEvent`. */ export declare class CactusFocusEvent extends BaseEvent> { relatedTarget: EventTarget | null; constructor(type: 'focus' | 'blur', target: CactusEventTarget, originalEvent: ReactFocusEvent); } export {};