import * as React from 'react';
import { FacetColumnResultValues } from '../utils/synapseTypes/';
import { FacetSelection, QueryWrapperChildProps } from './QueryWrapper';
export declare const SELECT_SINGLE_FACET = "SELECT_SINGLE_FACET";
declare type CheckboxGroupProps = {
    isAllFilterSelected: boolean;
    rgbIndex: number;
    facetColumnResult: FacetColumnResultValues;
    applyChanges: (ref: React.RefObject<HTMLSpanElement>, facetValue: string, selector: string, index: number) => (_event: React.MouseEvent<HTMLSpanElement>) => void;
    showAllFacets: boolean;
    lastFacetSelection: FacetSelection;
    isLoading: boolean;
};
export declare const FACET_SELECTED_CLASS = "FACET_SELECTED_CLASS";
export declare const FACET_NOT_SELECTED_CLASS = "FACET_NOT_SELECTED_CLASS";
/**
 * Checkbox group represents one column's set of checkbox filters
 *
 * @class CheckboxGroup
 * @extends {React.Component}
 */
declare const CheckboxGroup: React.FunctionComponent<CheckboxGroupProps>;
declare type FacetsState = {
    showAllFacets: boolean;
};
declare class Facets extends React.Component<QueryWrapperChildProps, FacetsState> {
    constructor(props: QueryWrapperChildProps);
    /**
     * Display the view of the facets
     *
     * @returns
     * @memberof Facets
     */
    showFacetFilter(): JSX.Element;
    /**
     * Handle checkbox click event
     */
    applyChanges: (ref: React.RefObject<HTMLSpanElement>, facetValue: string, selector: string, index: number) => (event: React.MouseEvent<HTMLSpanElement>) => void;
    showAllFacets(event: React.MouseEvent<HTMLAnchorElement, MouseEvent>): void;
    showButtons(curFacetsLength: number, ref: React.RefObject<HTMLDivElement>): JSX.Element;
    render(): JSX.Element;
}
export { Facets, CheckboxGroup };
