import { Filter } from '@sisense/sdk-data';
/**
 * Filter tiles supposed to be Controlled components (stateless) and to react on passed `filter`.
 * But to achieve backward compatibility, we also need to handle `filter` as internal state
 * in case of using Filter tile as Uncontrolled component (statefull).
 *
 * This hook helps with synchronization for both patterns.
 */
export declare function useSynchronizedFilter<TFilter extends Filter = Filter>(filterFromProps: TFilter | null, updateFilterFromProps: (filter: TFilter) => void, createEmptyFilter?: () => TFilter): {
    filter: TFilter;
    updateFilter: (newFilter: TFilter) => void;
};
