import { default as React } from 'react';
import { AvatarProps, AvatarType } from '../Avatar';
import { BadgeProps, BadgeType } from '../Badge';
import { SvgIcon } from '../Icon';
import { StatusDotProps, StatusDotType } from '../StatusDot';
import { TitleTags } from '../Title';
import { ElementHeaderTextProps, ElementHeaderTextType } from './ElementHeaderText/ElementHeaderText';
import { StatusDotListProps, StatusDotListType } from './StatusDotList/StatusDotList';
export type ElementHeaderSize = 'compact' | 'small' | 'medium' | 'large';
export type ParentType = 'linklist' | 'expanderlist';
export interface ElementHeaderType extends React.FC<ElementHeaderProps> {
    Avatar?: AvatarType;
    Badge?: BadgeType;
    ElementHeaderText?: ElementHeaderTextType;
    StatusDot?: StatusDotType;
    StatusDotList?: StatusDotListType;
}
export interface ElementHeaderProps {
    /** Adds custom classes to the ElementHeader element. */
    className?: string;
    /** Chevron to render inside of the ElementHeader */
    chevronIcon?: SvgIcon;
    /** Close button to be rendered inside of ElementHeader. This renders in place of chevronIcon */
    closeButton?: React.ReactElement;
    /** Children to be rendered inside of ElementHeader */
    children: React.ReactNode;
    /** Changes the underlying element of the title. Default: h2*/
    titleHtmlMarkup?: TitleTags;
    /** icon to be rendered inside of ElementHeader */
    icon?: React.ReactElement;
    /** whether or not the parent is hovered */
    isHovered?: boolean;
    /** Adjusts styling based on parent */
    parentType?: ParentType;
    /** Changes size of the ElementHeader. */
    size?: ElementHeaderSize;
    /** Sets the data-testid attribute. */
    testId?: string;
    /** Highlights text in title. Used for search results */
    highlightText?: string;
}
export interface ElementHeaderChildren {
    avatarChild?: React.ReactElement<AvatarProps>;
    elementHeaderTextChildren: React.ReactElement<ElementHeaderTextProps>[];
    badgeChildren?: React.ReactElement<BadgeProps>[];
    statusDotChildren?: React.ReactElement<StatusDotProps>[];
    statusDotMCChild?: React.ReactElement<StatusDotListProps>;
    elementChild?: React.ReactElement;
    stringChildren: string[];
    remainingChildren: React.ReactNode[];
}
export declare const ElementHeaderRoot: ElementHeaderType;
type ElementHeaderComponent = typeof ElementHeaderRoot & {
    Text: React.FC<ElementHeaderTextProps>;
    StatusDotList: React.FC<StatusDotListProps>;
};
declare const ElementHeader: ElementHeaderComponent;
export default ElementHeader;
