import React from 'react'; import { IconProps } from '../../icons/_Icon/Icon'; import { PropsWithHTMLAttributesAndRef } from '../../utils/types/PropsWithHTMLAttributes'; import { CollapsePropHorizontalSpace, CollapsePropSize, CollapsePropView } from '../Collapse/Collapse'; import { CollapseIconPropDirection } from '../Collapse/CollapseIcon/CollapseIcon'; export declare type DefaultItem = { label: string; content: React.ReactNode; rightSide?: React.ReactNode | React.ReactNode[]; }; export declare type CollapseGroupPropOnOpen = (params: { e: React.MouseEvent; value: (IS_ACCORDION extends true ? number : number[]) | null; }) => void; export declare type CollapseGroupPropOpened = (IS_ACCORDION extends true ? number : number[]) | null | undefined; declare type CollapseGroupPropGetItemLabel = (item: ITEM) => string; declare type CollapseGroupPropGetItemContent = (item: ITEM) => React.ReactNode; declare type CollapseGroupPropGetItemRightSide = (item: ITEM) => React.ReactNode | React.ReactNode[] | undefined; export declare type CollapseGroupProps = PropsWithHTMLAttributesAndRef<{ items: ITEM[]; isAccordion?: IS_ACCORDION; children?: never; icon?: React.FC; divider?: boolean; size?: CollapsePropSize; view?: CollapsePropView; horizontalSpace?: CollapsePropHorizontalSpace; hoverEffect?: boolean; onOpen?: CollapseGroupPropOnOpen; opened?: CollapseGroupPropOpened; getItemLabel?: CollapseGroupPropGetItemLabel; getItemContent?: CollapseGroupPropGetItemContent; } & ({ closeIcon: React.FC; directionIcon?: never; closeDirectionIcon?: never; } | { closeIcon?: never; directionIcon?: CollapseIconPropDirection; closeDirectionIcon?: CollapseIconPropDirection; }) & ({ iconPosition?: 'left'; getItemRightSide?: CollapseGroupPropGetItemRightSide; } | { iconPosition?: 'right'; getItemRightSide?: never; }), HTMLDivElement> & (ITEM extends { label: DefaultItem['label']; } ? {} : { getItemLabel: CollapseGroupPropGetItemLabel; }) & (ITEM extends { content: DefaultItem['content']; } ? {} : { getItemContent: CollapseGroupPropGetItemContent; }); export declare const defaultGetItemLabel: CollapseGroupPropGetItemLabel; export declare const defaultGetItemContent: CollapseGroupPropGetItemContent; export declare const defaultGetItemRightSide: CollapseGroupPropGetItemContent; export declare type CollapseGroupComponent = (props: CollapseGroupProps) => React.ReactElement | null; export declare type CollapseGroupRenderFunction = (props: CollapseGroupProps, ref: React.Ref) => React.ReactElement | null; export declare function withDefaultGetters(props: CollapseGroupProps): ({ items: ITEM[]; isAccordion?: IS_ACCORDION | undefined; children?: undefined; icon?: React.FC | undefined; divider?: boolean | undefined; size?: "xs" | "s" | "m" | "l" | "2xs" | undefined; view?: "primary" | "secondary" | undefined; horizontalSpace?: "xs" | "s" | "m" | "l" | "2xs" | "xl" | "2xl" | "3xl" | "4xl" | "5xl" | "6xl" | "3xs" | undefined; hoverEffect?: boolean | undefined; onOpen?: CollapseGroupPropOnOpen | undefined; opened?: CollapseGroupPropOpened; getItemLabel?: CollapseGroupPropGetItemLabel | undefined; getItemContent?: CollapseGroupPropGetItemContent | undefined; } & { closeIcon: React.FC; directionIcon?: undefined; closeDirectionIcon?: undefined; } & { iconPosition?: "left" | undefined; getItemRightSide?: CollapseGroupPropGetItemRightSide | undefined; } & Omit, "css" | "children" | "view" | "size" | "icon" | "items" | "getItemLabel" | "divider" | "getItemRightSide" | "horizontalSpace" | "closeIcon" | "hoverEffect" | "directionIcon" | "closeDirectionIcon" | "iconPosition" | "isAccordion" | "onOpen" | "opened" | "getItemContent"> & React.RefAttributes & (ITEM extends { label: string; } ? {} : { getItemLabel: CollapseGroupPropGetItemLabel; }) & (ITEM extends { content: React.ReactNode; } ? {} : { getItemContent: CollapseGroupPropGetItemContent; }) & { getItemLabel: CollapseGroupPropGetItemLabel | CollapseGroupPropGetItemLabel; getItemContent: CollapseGroupPropGetItemContent | CollapseGroupPropGetItemContent; getItemRightSide: CollapseGroupPropGetItemContent | CollapseGroupPropGetItemRightSide; }) | ({ items: ITEM[]; isAccordion?: IS_ACCORDION | undefined; children?: undefined; icon?: React.FC | undefined; divider?: boolean | undefined; size?: "xs" | "s" | "m" | "l" | "2xs" | undefined; view?: "primary" | "secondary" | undefined; horizontalSpace?: "xs" | "s" | "m" | "l" | "2xs" | "xl" | "2xl" | "3xl" | "4xl" | "5xl" | "6xl" | "3xs" | undefined; hoverEffect?: boolean | undefined; onOpen?: CollapseGroupPropOnOpen | undefined; opened?: CollapseGroupPropOpened; getItemLabel?: CollapseGroupPropGetItemLabel | undefined; getItemContent?: CollapseGroupPropGetItemContent | undefined; } & { closeIcon?: undefined; directionIcon?: "left" | "right" | "downRight" | "downLeft" | "upRight" | "upLeft" | "down" | "up" | undefined; closeDirectionIcon?: "left" | "right" | "downRight" | "downLeft" | "upRight" | "upLeft" | "down" | "up" | undefined; } & { iconPosition?: "left" | undefined; getItemRightSide?: CollapseGroupPropGetItemRightSide | undefined; } & Omit, "css" | "children" | "view" | "size" | "icon" | "items" | "getItemLabel" | "divider" | "getItemRightSide" | "horizontalSpace" | "closeIcon" | "hoverEffect" | "directionIcon" | "closeDirectionIcon" | "iconPosition" | "isAccordion" | "onOpen" | "opened" | "getItemContent"> & React.RefAttributes & (ITEM extends { label: string; } ? {} : { getItemLabel: CollapseGroupPropGetItemLabel; }) & (ITEM extends { content: React.ReactNode; } ? {} : { getItemContent: CollapseGroupPropGetItemContent; }) & { getItemLabel: CollapseGroupPropGetItemLabel | CollapseGroupPropGetItemLabel; getItemContent: CollapseGroupPropGetItemContent | CollapseGroupPropGetItemContent; getItemRightSide: CollapseGroupPropGetItemContent | CollapseGroupPropGetItemRightSide; }); export {};