import type { AutocompleteItem } from 'autocompleter';
import { Calendar, type Options } from 'vanilla-calendar-pro';
import type { AutocompleterOption, CollectionFilterBy, CollectionOption, CollectionSortBy, Column, ColumnEditor, ColumnFilter } from '../interfaces/index.js';
import type { CollectionService } from '../services/collection.service.js';
/**
 * add loading class ".slick-autocomplete-loading" to the Kraaden Autocomplete input element
 * by overriding the original user's fetch method.
 * We will add the loading class when the fetch starts and later remove it when the update callback is being called.
 * @param inputElm - autocomplete input element
 * @param autocompleterOptions - autocomplete settings
 */
export declare function addAutocompleteLoadingByOverridingFetch<T extends AutocompleteItem>(inputElm: HTMLInputElement, autocompleterOptions: Partial<AutocompleterOption<T>>): void;
/**
 * When enabled, get the collection from an object when `collectionInsideObjectProperty` is enabled
 * @param {*} collection
 * @param {ColumnFilter} columnFilterOrEditor
 * @returns {Array}
 */
export declare function getCollectionFromObjectWhenEnabled<T = any>(collection: T, columnFilterOrEditor?: ColumnEditor | ColumnFilter): T;
export declare function resetDatePicker(pickerInstance: Calendar): void;
/** Create a blank entry for Select Editor/Filter that can be added to the collection. It will also reuse the same collection structure provided by the user */
export declare function createBlankSelectEntry(labelName: string, valueName: string, labelPrefixName?: string, labelSuffixName?: string): any;
export declare function setPickerFocus(pickerElm: HTMLElement): void;
export declare function setPickerDates(colEditorOrFilter: ColumnEditor | ColumnFilter, dateInputElm: HTMLInputElement, pickerInstance: Options | Calendar, options: {
    oldVal?: Date | string | Array<Date | string> | undefined;
    newVal: Date | string | Array<Date | string> | undefined;
    columnDef: Column;
    updatePickerUI?: boolean;
    selectedSettings?: Pick<Options, 'selectedDates' | 'selectedMonth' | 'selectedTime' | 'selectedYear'>;
}): void;
/** When user defines pre-filter on his Editor/Filter collection */
export declare function filterCollectionWithOptions<T = any>(inputCollection: T[], collectionService?: CollectionService, collectionFilterBy?: CollectionFilterBy | CollectionFilterBy[], collectionOptions?: CollectionOption): T[];
/** When user defines pre-sort on his Editor/Filter collection */
export declare function sortCollectionWithOptions<T = any>(inputCollection: T[], columnDef: Column, collectionService?: CollectionService, collectionSortBy?: CollectionSortBy | CollectionSortBy[], enableTranslateLabel?: boolean): T[];
//# sourceMappingURL=commonEditorFilterUtils.d.ts.map