import { EventEmitter } from "../../stencil-public-runtime";
import Time from "../../utils/time";
export declare class XTimepicker {
    /**
     * Element ID for internal reference
     */
    private readonly inputId;
    /**
     * The hour hand element
     */
    private hourHand;
    /**
     * The minute hand element
     */
    private minuteHand;
    /**
     * The clock element
     */
    private clock;
    /**
     * Blur timeout
     */
    private blurTimeout;
    /**
     * Element input label text
     */
    label?: string;
    /**
     * Element input name for forms keys
     */
    name?: string;
    /**
     * Element input information block
     */
    info?: string;
    /**
     * Element show loading and block for edit
     */
    loading: boolean;
    /**
     * Element input clear button
     */
    cleanable: boolean;
    /**
     * Element input required for forms validations
     */
    required: boolean;
    /**
     * Element on empty value set now time
     */
    now: boolean;
    /**
     * Element input value
     */
    value?: string | null;
    /**
     * Form input validation state
     */
    isValid: boolean;
    /**
     * input focus state
     */
    isFocused: boolean;
    /**
     * Input loading state
     */
    isLoading: boolean;
    /**
     * Input diabled state
     */
    isDisabled: boolean;
    /**
     * Input visible state
     */
    isVisible: boolean;
    /**
     * Hour hand angle
     */
    hourHandAngle: number;
    /**
     * Minute hand angle
     */
    minuteHandAngle: number;
    /**
     * Dragging hand element
     */
    draggingHand: HTMLDivElement;
    /**
     * Time selected
     */
    timeSelected: Time;
    /**
     * On validate input event
     */
    onValidateInputEvent: EventEmitter<ElementInternals>;
    /**
     * Element reference
     */
    el: HTMLElement;
    /**
     * Element internal
     */
    internals: ElementInternals;
    /**
     * Watch changes in value property
     */
    watchValue(value: string): void;
    /**
     * This is called when the 'disabled' attribute of the element or or an ancestor <fieldset> is updated
     *
     * @param disabled
     */
    formDisabledCallback(disabled: boolean): void;
    /**
     * This is called when the parent/owner form is reset
     */
    formResetCallback(): void;
    /**
     * This is called when the input is validated
     */
    formValidateCallback(dispatchValidation?: boolean): void;
    /**
     * This is called on component will load
     */
    componentWillLoad(): void;
    /**
     * This is called on component did load
     */
    componentDidLoad(): void;
    /**
     * Set element value by event
     *
     * @param event
     */
    onInput(event: InputEvent): void;
    /**
     * Set element value by keyboard event
     */
    onKeydownInput(event: KeyboardEvent): void;
    /**
     * This called on input field is unfocused
     */
    onBlurInput(e: FocusEvent): void;
    /**
     * This called on input field is focused
     */
    onFocusInput(e: FocusEvent): void;
    /**
     * On drag start event
     */
    onDragStart(event: MouseEvent | TouchEvent): void;
    /**
     * On drag move event
     */
    onDragMove(event: MouseEvent | TouchEvent): void;
    /**
     * On drag end event
     */
    onDragEnd(): void;
    /**
     * Clears the input value
     */
    clearInput(): void;
    /**
     * Handle hour button click
     */
    handleHourClick(hour: number): void;
    /**
     * Handle minute button click
     */
    handleMinuteClick(min: number): void;
    /**
     * Get hour position styles
     */
    getHourPosition(hour: number): {
        left: string;
        top: string;
    };
    /**
     * Calculate the hand angle from the time
     */
    calculateAngleFromTime(): void;
    /**
     * Get tick position styles
     */
    getTickPosition(i: number): {
        left: string;
        top: string;
        transform: string;
    };
    /**
     * Render component
     */
    render(): any;
}
