import { BindingEventService } from '@slickgrid-universal/binding';
import { Calendar, type Options } from 'vanilla-calendar-pro';
import type { SlickGrid } from '../core/slickGrid.js';
import { type OperatorType, type SearchTerm } from '../enums/index.js';
import type { Column, ColumnFilter, Filter, FilterArguments, FilterCallback, GridOption, OperatorDetail } from '../interfaces/index.js';
import type { TranslaterService } from '../services/translater.service.js';
export declare class DateFilter implements Filter {
    protected readonly translaterService?: TranslaterService | undefined;
    protected _bindEventService: BindingEventService;
    protected _clearFilterTriggered: boolean;
    protected _currentValue?: string;
    protected _currentDateOrDates?: Date | Date[] | string | string[];
    protected _currentDateStrings?: string[];
    protected _lastClickIsDate: boolean;
    protected _lastSearchValue?: string;
    protected _pickerOptions: Options;
    protected _filterElm: HTMLDivElement;
    protected _dateInputElm: HTMLInputElement;
    protected _operator: OperatorType;
    protected _selectOperatorElm?: HTMLSelectElement;
    protected _shouldTriggerQuery: boolean;
    hasTimePicker: boolean;
    inputFilterType: 'compound' | 'range';
    calendarInstance?: Calendar;
    grid: SlickGrid;
    searchTerms: SearchTerm[];
    columnDef: Column;
    callback: FilterCallback;
    filterContainerElm: HTMLElement;
    constructor(translaterService?: TranslaterService | undefined);
    /** Getter for the Grid Options pulled through the Grid Object */
    protected get gridOptions(): GridOption;
    /** Getter for the Column Filter */
    get columnFilter(): ColumnFilter;
    /** Getter for the Current Date(s) selected */
    get currentDateOrDates(): string | Date | string[] | Date[] | undefined;
    /** Getter to know what would be the default operator when none is specified */
    get defaultOperator(): OperatorType;
    /** Getter for the date picker options */
    get pickerOptions(): Options;
    get filterOptions(): Options;
    /** Getter for the Filter Operator */
    get operator(): OperatorType;
    /** Setter for the filter operator */
    set operator(operator: OperatorType);
    /** Initialize the Filter */
    init(args: FilterArguments): void;
    /** Clear the filter value */
    clear(shouldTriggerQuery?: boolean, shouldTriggerClearEvent?: boolean): void;
    /** Destroy the filter */
    destroy(): void;
    hide(): void;
    show(): void;
    getValues(): string | Date | string[] | Date[] | undefined;
    /**
     * Set value(s) on the DOM element
     * @params searchTerms
     */
    setValues(values?: SearchTerm[] | SearchTerm, operator?: OperatorType, triggerChange?: boolean): void;
    protected buildDatePickerInput(searchTerms?: SearchTerm | SearchTerm[]): void;
    /** Get the available operator option values to populate the operator select dropdown list */
    protected getOperatorOptionValues(): OperatorDetail[];
    /**
     * Create the DOM element
     * @params searchTerms
     */
    protected createDomFilterElement(searchTerms?: SearchTerm | SearchTerm[]): HTMLDivElement;
    protected onTriggerEvent(e: Event | undefined): void;
    /** add/remove "filled" CSS class */
    protected updateFilterStyle(isFilled: boolean): void;
}
//# sourceMappingURL=dateFilter.d.ts.map