import { RefObject } from "react";
import type { JBDateInputWebComponent, JBDateInputEventType } from 'jb-date-input';
export type EventProps = {
    /**
     * when component loaded, in most cases component is already loaded before react mount so you dont need this but if you load web-component dynamically with lazy load it will be called after react mount
     */
    onLoad?: (e: JBDateInputEventType<CustomEvent>) => void;
    /**
   * when all property set and ready to use, in most cases component is already loaded before react mount so you dont need this but if you load web-component dynamically with lazy load it will be called after react mount
   */
    onInit?: (e: JBDateInputEventType<CustomEvent>) => void;
    /**
     * when value changed to invalid value
     */
    onInvalid?: (e: JBDateInputEventType<CustomEvent>) => void;
    /**
     * base on standard js `change` event so it only called on blur. use onInput to get every keyStroke
     */
    onChange?: (e: JBDateInputEventType<Event>) => void;
    onInput?: (e: JBDateInputEventType<InputEvent>) => void;
    onBeforeInput?: (e: JBDateInputEventType<InputEvent>) => void;
    onKeyUp?: (e: JBDateInputEventType<KeyboardEvent>) => void;
    onKeyPress?: (e: JBDateInputEventType<KeyboardEvent>) => void;
    onKeyDown?: (e: JBDateInputEventType<KeyboardEvent>) => void;
    onSelect?: (e: JBDateInputEventType<CustomEvent>) => void;
    /**
     * when user press enter button
     */
    onEnter?: (e: JBDateInputEventType<CustomEvent>) => void;
    onFocus?: (e: JBDateInputEventType<FocusEvent>) => void;
    onBlur?: (e: JBDateInputEventType<FocusEvent>) => void;
};
export declare function useEvents(element: RefObject<JBDateInputWebComponent>, props: EventProps): void;
