import type { UmbPickerDataSource } from '../data-source/types.js';
import type { UmbCollectionRepository } from '../../collection/index.js';
import type { UmbItemModel } from '../../entity-item/index.js';
import type { UmbApi } from '../../../../libs/extension-api/index.js';
import type { Observable } from '../../../../external/rxjs/index.js';
export interface UmbPickerCollectionDataSourceTextFilterFeature {
    /** Whether text filtering is enabled for this collection data source. */
    enabled: boolean;
}
export interface UmbPickerCollectionDataSourceFeatures {
    /** Observable configuration for text filter support. */
    supportsTextFilter: Observable<UmbPickerCollectionDataSourceTextFilterFeature>;
}
export interface UmbPickerCollectionDataSource<CollectionItemType extends UmbItemModel = UmbItemModel> extends UmbPickerDataSource, UmbCollectionRepository<CollectionItemType>, UmbApi {
    collectionPickableFilter?: (item: CollectionItemType) => boolean;
    /** Feature toggles for the collection data source. Each feature is individually observable. */
    features?: UmbPickerCollectionDataSourceFeatures;
}
