import { Filter, FilterRelations, FilterRelationsJaql } from '@sisense/sdk-data';
/**
 * Checks if the filters have changed by deep comparison.
 *
 * @param prevFilters - Previous filters
 * @param newFilters - New filters
 * @returns Whether the filters have changed
 * @remarks
 * The function ignores randomly generated names of the filters.
 */
export declare function isFiltersChanged(prevFilters: Filter[] | undefined, newFilters: Filter[] | undefined): boolean;
export declare function haveSameAttribute(filterA: Filter, filterB: Filter): boolean;
/**
 * Compare filters with ignoring randomly generated things
 */
export declare function areFiltersEqual(filterA: Filter, filterB: Filter): boolean;
/**
 * Checks if filter relations have changed by deep comparison.
 *
 * @param prevFilters - Previous filters
 * @param newFilters - New filters
 * @param prevRelations - Previous relations
 * @param newRelations - New relations
 * @returns Whether filter relations have changed
 * @remarks
 * The function ignores node swaps since this does not affect logical result.
 */
export declare function isRelationsChanged(prevFilters: Filter[] | undefined, newFilters: Filter[] | undefined, prevRelations: FilterRelations | FilterRelationsJaql | undefined, newRelations: FilterRelations | FilterRelationsJaql | undefined): boolean;
