import { FilterOptions, SortableFilterOptions, BaseSortableFilterOptions, BaseFilterOptions } from "../cardinal-sdk-ts.mjs"; import { Identifiable } from "../model/base/Identifiable.mjs"; /** * Create filter options that match entities that satisfy all provided filters (at least 2 filters are required). * * If the first provided filter options {@link a} is sortable then these filter options are sortable using the same criteria as {@link a}. * If all filters options provided are base filters options then the returned filter options are also base options. * * @param a * @param b * @param others */ export declare function intersection>(a: BaseSortableFilterOptions, b: BaseFilterOptions, ...others: BaseFilterOptions[]): BaseSortableFilterOptions; export declare function intersection>(a: BaseFilterOptions, b: BaseFilterOptions, ...others: BaseFilterOptions[]): BaseFilterOptions; export declare function intersection>(a: SortableFilterOptions, b: FilterOptions, ...others: FilterOptions[]): SortableFilterOptions; export declare function intersection>(a: FilterOptions, b: FilterOptions, ...others: FilterOptions[]): FilterOptions; /** * Create filter options that match entities that satisfy at least one of the provided filters (at least 2 filters are required). * * These options are never sortable. * If all filters options provided are base filters options then the returned filter options are also base options. * * @param a * @param b * @param others */ export declare function union>(a: BaseFilterOptions, b: BaseFilterOptions, ...others: BaseFilterOptions[]): BaseFilterOptions; export declare function union>(a: FilterOptions, b: FilterOptions, ...others: FilterOptions[]): FilterOptions; /** * Create filter options that match entities that satisfy the {@link of} filter but do not satisfy the {@link subtracting} filter. * * If the first provided filter options {@link of} is sortable then these filter options are sortable using the same criteria as {@link of}. * If all filters options provided are base filters options then the returned filter options are also base options. * * @param of * @param subtracting */ export declare function difference>(of: BaseSortableFilterOptions, subtracting: BaseFilterOptions): BaseSortableFilterOptions; export declare function difference>(of: BaseFilterOptions, subtracting: BaseFilterOptions): BaseFilterOptions; export declare function difference>(of: SortableFilterOptions, subtracting: FilterOptions): SortableFilterOptions; export declare function difference>(of: FilterOptions, subtracting: FilterOptions): FilterOptions;