import type { FunctionComponent, ReactNode } from 'react';
import { DeepRequired } from 'ts-essentials';
import type { MenuItem } from '../../../shared/types/menu-item';
import { FilterVariant } from './common/filter-utils';
declare const BaseContainer: import("@emotion/styled").StyledComponent<{
    theme?: import("@emotion/react").Theme | undefined;
    as?: import("react").ElementType<any, keyof import("react").JSX.IntrinsicElements> | undefined;
} & {
    shouldShowBorder: boolean;
}, import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
export declare const Container: (props: React.ComponentProps<typeof BaseContainer>) => import("react/jsx-runtime").JSX.Element;
/**
 * Design options for the filter tile component.
 *
 * @internal
 */
export interface FilterTileDesignOptions {
    header?: {
        shouldBeShown?: boolean;
        isCollapsible?: boolean;
        hasBorder?: boolean;
        hasBackgroundFilterIcon?: boolean;
        disableGroupHover?: boolean;
    };
    border?: {
        shouldBeShown?: boolean;
    };
    footer?: {
        shouldBeShown?: boolean;
    };
}
export type CompleteFilterTileDesignOptions = DeepRequired<FilterTileDesignOptions>;
interface FilterTileContainerProps {
    title?: string;
    renderContent: (collapsed: boolean, tileDisabled: boolean) => ReactNode;
    arrangement?: FilterVariant;
    disabled?: boolean;
    isDependent?: boolean;
    design?: FilterTileDesignOptions;
    onToggleDisabled?: () => void;
    onDelete?: () => void;
    onEdit?: () => void;
    locked?: boolean;
    /**
     * Header menu items.
     * When provided, the menu button is shown with these items.
     */
    menuItems?: MenuItem[];
    /**
     * Render header title
     *
     * @internal
     */
    renderHeaderTitle?: (title: React.ReactNode) => React.ReactNode;
}
/**
 * Generic component that owns common functionality of a filter "tile" like
 * collapsible content and an enable/disable toggle. This is intended to match
 * the style of filter tiles in the right sidebar on a Sisense dashboard.
 */
export declare const FilterTileContainer: FunctionComponent<FilterTileContainerProps>;
export {};
