import React, { KeyboardEventHandler } from 'react';
import { TooltipProps } from '../tooltip';
export type SidebarCardHeaderProps = {
    /** Card Header testId */
    testId: string;
    id: string;
    /** Card Header title */
    title?: string;
    /** Optional tooltip props to define place, testId,
     * and other things specified for header tooltip */
    titleTooltip?: Partial<TooltipProps>;
    /** Optional handler for checkbox selection,
     * when not defined onSelect will be triggered */
    onCheckboxSelect?: (id: string) => void;
    /** Card Header: custom left content */
    headerContentLeft?: React.ReactNode;
    /** Card Header: custom right content */
    headerContentRight?: React.ReactNode;
    /** Defines if checkbox component should be added */
    hasCheckbox?: boolean;
    /** Tooltip for teh checkbox */
    checkboxTooltip?: string;
    /** Optional parameter for enabling checkbox,
     * when not defined isSelected used */
    isChecked?: boolean;
    /** Defines if checkbox is disabled */
    isCheckboxDisabled?: boolean;
    checkboxTabIndex?: number;
};
export type SidebarCardContentProps = {
    /** Card content test id */
    testId: string;
    /** Card content */
    content?: React.ReactNode;
};
export type SidebarCardItemProps = {
    /** Card content test id */
    testId?: string;
    /** Item id (for selection handler) */
    id: string;
    /**  Defines if card is selected */
    isSelected?: boolean;
    /** Defines if card is disabled */
    isDisabled?: boolean;
    /** Defines if checkbox component should be added */
    hasCheckbox?: boolean;
    /** Optional parameter for enabling checkbox,
     * when not defined isSelected used */
    isChecked?: boolean;
    /** Tooltip for the checkbox */
    checkboxTooltip?: string;
    /** Disable checkbox, if it is not present isDisabled is used */
    isCheckboxDisabled?: boolean;
    /** Card Header: title */
    title?: string;
    /** Card Header: tooltip */
    titleTooltip?: Partial<TooltipProps>;
    /** Card Header: custom left content */
    headerContentLeft?: React.ReactNode;
    /** Card Header: custom right content */
    headerContentRight?: React.ReactNode;
    /** Card content: react node to be rendered as card content */
    content?: React.ReactNode;
    /** Card class name */
    className?: string;
    /** Defines if left item should be added */
    leftItem?: React.ReactNode | null;
    /** Optional ref to attach to the card's root element */
    ref?: React.Ref<HTMLDivElement>;
};
export type SidebarCardProps = {
    /** Test id */
    testId: string;
    /** Item id */
    id: string;
    /** Defines if card is selected */
    isSelected?: boolean;
    /** Defines if card is clickable */
    isReadOnly?: boolean;
    /** Defines if card is disabled */
    isDisabled?: boolean;
    /** Defines if checkbox component should be added */
    hasCheckbox?: boolean;
    /** Defines if left item should be added */
    leftItem?: React.ReactNode | null;
    /** Optional parameter for enabling checkbox,
     * when not defined isSelected used */
    isChecked?: boolean;
    /** Tooltip for the checkbox */
    checkboxTooltip?: string;
    /** Disable checkbox, if it is not present isDisabled is used */
    isCheckboxDisabled?: boolean;
    /** Card Header: title */
    title?: string;
    /** Card Header: tooltip */
    titleTooltip?: Partial<TooltipProps>;
    /** Card Header: custom left content */
    headerContentLeft?: React.ReactNode;
    /** Card Header: custom right content */
    headerContentRight?: React.ReactNode;
    /** Card content: react node to be rendered as card content */
    content?: React.ReactNode;
    /** Optional handler for checkbox selection,
     * when not defined onSelect will be triggered */
    onCheckboxSelect?: (id: string) => void;
    /** Custom class name for item */
    className?: string;
    onClick: () => void;
    onKeyDown?: KeyboardEventHandler;
    /** true if both onSelect and onCheckboxSelect are defined in SidebarCards */
    shouldSelectTileOnEnter: boolean;
};
