/// <reference types="node" />
import { DateRangeFilterMode, Filter, RangeItem, ToggleState, Translate } from '@wix/bex-core';
import { EventEmitter } from '@wix/bex-core/events';
import { FilterToolbarState } from '../providers';
export interface DateRangePickerStateParams {
    toolbar: FilterToolbarState;
    translate: Translate;
    filter: Filter<RangeItem<Date>>;
    filterByTime?: boolean;
    mode?: DateRangeFilterMode;
}
export declare class DateRangePickerState {
    readonly translate: DateRangePickerStateParams['translate'];
    readonly _filter: DateRangePickerStateParams['filter'];
    readonly dropdown: ToggleState;
    readonly events: EventEmitter<[never]>;
    readonly toolbar: FilterToolbarState;
    from: Date | null;
    to: Date | null;
    isFromTimeSet: boolean;
    isToTimeSet: boolean;
    _mode: DateRangeFilterMode | undefined;
    _selectedPreset: string;
    filterByTime: boolean;
    get filter(): Filter<any> | Filter<RangeItem<Date>>;
    set selectedPreset(preset: string);
    get selectedPreset(): string;
    constructor(params: DateRangePickerStateParams);
    clearTime(): void;
    clear(): void;
    remove(): void;
    private convertToBIFormat;
    private refreshIfChanged;
    close(): void;
    init(): () => void;
    onPresetChanged(newPreset: string): void;
    onDateSelected(newDate: Date | null, curDate: Date | null, isInvalid: (date: Date) => boolean, isTimeSet: boolean, type: 'from' | 'to'): {
        date: null;
        isTimeSet: boolean;
    } | {
        date: Date;
        isTimeSet: boolean;
    };
    onFromSelected(from: Date | null): void;
    onToSelected(to: Date | null): void;
    onTimeSelected(newTime: Date | null, curDate: Date): {
        isTimeSet: boolean;
        date: Date;
    };
    onFromTimeSelected(fromTime: Date | null): void;
    onToTimeSelected(toTime: Date | null): void;
    onFromClosed(): void;
    onToClosed(): void;
    static _isBiggerOrSameDate(date1: Date, date2: Date): boolean;
    static _isBiggerDate(date1: Date, date2: Date): boolean;
    filterDateFrom(date: Date): boolean;
    filterDateTo(date: Date): boolean;
    filterDateTimeFrom(date: Date): boolean;
    filterDateTimeTo(date: Date): boolean;
}
//# sourceMappingURL=DateRangePickerState.d.ts.map