import { EventEmitter } from '../../stencil-public-runtime';
import { IRelativeTimeDropdownOption, IRelativeTimePicker, IRelativeTimePickerEvents, IRelativeTimePickerOption, ITimePickerRelativeTime, ITimePickerTimezone } from './relative-time-picker.types';
import { ISelectSingleOptions } from '../single-select-dropdown/single-select-dropdown.types';
import { CustomCssClass } from '../../types';
import { ITimezoneOffset, SelectedTimestamp } from '../time-picker/time-picker.types';
export declare class KvRelativeTimePicker implements IRelativeTimePicker, IRelativeTimePickerEvents {
    private intervalID;
    /** @inheritdoc */
    selectedTimeKey?: string;
    /** @inheritdoc */
    options?: IRelativeTimePickerOption[][];
    /** @inheritdoc */
    selectedTimezone?: string;
    /** @inheritdoc */
    timezones?: ITimezoneOffset[];
    /** @inheritdoc */
    customIntervalOptionEnabled?: boolean;
    /** @inheritdoc */
    timezoneSelectionEnabled?: boolean;
    /** @inheritdoc */
    timezoneContentVisible?: boolean;
    /** @inheritdoc */
    disableTimezoneSelection?: boolean;
    /** @inheritdoc */
    customClass: CustomCssClass;
    /** State that keeps the relative options that are constantly updated if the time
     * changes
     */
    relativeTimeOptions: IRelativeTimeDropdownOption[][];
    /** Timezone dropdown management states */
    timezonesSearchTerm: string;
    timezoneDropdownOptions: ISelectSingleOptions;
    timezoneFilteredDropdownOptions: ISelectSingleOptions;
    /** State to determine if a scrollbar is needed to display all the options */
    hasScroll: boolean;
    /** Selected option range in timestamp */
    selectedOptionRange: SelectedTimestamp;
    /** @inheritdoc */
    selectedRelativeTimeChange: EventEmitter<ITimePickerRelativeTime>;
    /** @inheritdoc */
    customizeIntervalClicked: EventEmitter<string>;
    /** @inheritdoc */
    timezoneChange: EventEmitter<ITimePickerTimezone>;
    /** @inheritdoc */
    timezoneInputClicked: EventEmitter<boolean>;
    /** @inheritdoc */
    timezoneDropdownStateChange: EventEmitter<boolean>;
    handleRelativeTimeOptionsChanges(): void;
    onTimezonesChange(timezones?: ITimezoneOffset[]): void;
    onTimezoneSearch(searchTerm: string): void;
    onSelectedTimeKeyChange(newKey: string): void;
    onSelectedTimezoneChange(): void;
    componentWillLoad(): void;
    connectedCallback(): void;
    disconnectedCallback(): void;
    private onTimezoneSearchTermChange;
    private onTimezoneSelected;
    private onSelectRelativeOption;
    private hasSelectedKeyRangeChanged;
    private onSelectCustomizeIntervalOption;
    private handleShowTimezoneContent;
    private getSelectedTimezone;
    private getSelectedTimezoneTitle;
    private onTimezoneChange;
    render(): any;
}
