import { BindingEventService } from '@slickgrid-universal/binding';
import { VanillaCalendar, type IOptions } from 'vanilla-calendar-picker';
import { OperatorType, type OperatorString, type SearchTerm } from '../enums/index';
import type { Column, ColumnFilter, Filter, FilterArguments, FilterCallback, GridOption, OperatorDetail } from '../interfaces/index';
import type { TranslaterService } from '../services/translater.service';
import type { SlickGrid } from '../core/index';
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 _pickerOptions: IOptions;
    protected _filterElm: HTMLDivElement;
    protected _dateInputElm: HTMLInputElement;
    protected _operator: OperatorType | OperatorString;
    protected _selectOperatorElm?: HTMLSelectElement;
    protected _shouldTriggerQuery: boolean;
    hasTimePicker: boolean;
    inputFilterType: 'compound' | 'range';
    calendarInstance?: VanillaCalendar;
    grid: SlickGrid;
    searchTerms: SearchTerm[];
    columnDef: Column;
    callback: FilterCallback;
    filterContainerElm: HTMLDivElement;
    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 | OperatorString;
    /** Getter for the date picker options */
    get pickerOptions(): IOptions;
    get filterOptions(): IOptions;
    /** Getter for the Filter Operator */
    get operator(): OperatorType | OperatorString;
    /** Setter for the filter operator */
    set operator(operator: OperatorType | OperatorString);
    /** Initialize the Filter */
    init(args: FilterArguments): void;
    /** Clear the filter value */
    clear(shouldTriggerQuery?: 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 | OperatorString): 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;
}
//# sourceMappingURL=dateFilter.d.ts.map