import { Filter, FilterRelations } from '@sisense/sdk-data';
/**
 * Result of the FilterRelations conversion.
 */
type UseFilterRelationsConversionResult = {
    /** The current filters or filter relations. */
    filtersOrFilterRelations: Filter[] | FilterRelations;
    /** The current regular filters without relations. */
    regularFilters: Filter[];
    /** Adds a new filter to the current filters (recalculates relations if needed). */
    addFilter: (filter: Filter) => void;
    /** Completely replaces the current filters and relations with new ones. */
    setFiltersOrFilterRelations: (filtersOrFilterRelations: Filter[] | FilterRelations) => void;
    /** Completely replaces the current filters with new ones (recalculates relations if needed). */
    setFilters: (filters: Filter[]) => void;
    /** Calculates relations for some other filters based on current relations and applies them */
    applyRelationsToOtherFilters: (otherFilters: Filter[]) => Filter[] | FilterRelations;
};
/**
 * Hook for handling conversion between regular filters and filter relations.
 *
 * @param initialFiltersOrFilterRelations - Initial filters or filter relations.
 * @returns The result of the conversion. See {@link UseFilterRelationsConversionResult}.
 */
export declare function useConvertFilterRelations(initialFiltersOrFilterRelations: Filter[] | FilterRelations, onFiltersChange?: (filters: Filter[] | FilterRelations) => void): UseFilterRelationsConversionResult;
export {};
