import { FunctionComponent } from 'react';
import { Attribute, DataSource, Filter } from '@sisense/sdk-data';
import { FilterTileDesignOptions } from '../filter-tile-container';
import { FilterTileConfig } from '../filter-tile/types';
/**
 * Props of the {@link MemberFilterTile} component.
 */
export interface MemberFilterTileProps {
    /** Title for the filter tile, which is rendered into the header */
    title: string;
    /**
     * Data source the query is run against - e.g. `Sample ECommerce`
     *
     * If not specified, the query will use the `defaultDataSource` specified in the parent Sisense Context.
     */
    dataSource?: DataSource;
    /** Attribute to filter on. A query will run to fetch all this attribute's members */
    attribute: Attribute;
    /** Source filter object. Caller is responsible for keeping track of filter state */
    filter: Filter | null;
    /** Callback indicating when the source members filter should be updated */
    onChange: (filter: Filter | null) => void;
    /** Filter delete callback */
    onDelete?: () => void;
    /** Filter edit callback */
    onEdit?: () => void;
    /** List of filters this filter is dependent on */
    parentFilters?: Filter[];
    /** Design options for the tile @internal */
    tileDesignOptions?: FilterTileDesignOptions;
    /**
     * Config for the filter tile
     *
     * @internal
     */
    config?: FilterTileConfig;
    /**
     * Render header title
     *
     * @internal
     */
    renderHeaderTitle?: (title: React.ReactNode) => React.ReactNode;
}
/**
 * UI component that allows the user to select members to include/exclude in a
 * filter. A query is executed against the provided data source to fetch
 * all members that are selectable.
 *
 * @example
 * Below is an example for filtering countries in the `Country` dimension of the `Sample ECommerce` data model.
 * ```tsx
 * const [countryFilter, setCountryFilter] = useState<Filter | null>(null);
 *
 * return (
 * <MemberFilterTile
 *   title={'Country'}
 *   attribute={DM.Country.Country}
 *   filter={countryFilter}
 *   onChange={setCountryFilter}
 * />
 * );
 * ```
 *
 * <img src="media://member-filter-tile-example-1.png" width="300px" />
 * @param props - Member filter tile props
 * @returns Member filter tile component
 * @group Filter Tiles
 */
export declare const MemberFilterTile: FunctionComponent<MemberFilterTileProps>;
