///
import { COMPONENTS_NAMESPACES } from '../../constants';
import { GlobalDefaultTheme, PartialGlobalDefaultTheme } from '../../utils/useTheme';
/**
* Terminal LinkTree item
*/
export declare type LinkTreeTerminalItem = {
/** onClick callback */
onClick?: () => void;
/** Text */
text: string;
};
/**
* LinkTree item
*/
export declare type LinkTreeItemType = LinkTreeTerminalItem | {
[x: string]: LinkTreeItemType[];
};
export interface LinkTreeProps {
/** Классы переданные через _ */
[x: string]: unknown;
/** Данные для дерева ссылок */
data: LinkTreeItemType[];
/** Тема */
theme?: PartialGlobalDefaultTheme[typeof COMPONENTS_NAMESPACES.linkTree];
}
/**
* LinkTree item props
*/
export interface LinkTreeItemProps {
/** Child Items */
children?: React.ReactNode;
/** Current item id */
currentItemId: symbol | null;
/** Defines if item is terminal */
isLast?: boolean;
/** onClick callback */
onClick?: () => void;
/** Current item id set state action */
setCurrentItemId: React.Dispatch>;
/** Text */
text: string;
/** Theme */
theme: GlobalDefaultTheme[typeof COMPONENTS_NAMESPACES.linkTree];
}
/** Current ref of LinkTree wrapper */
export interface LinkTreeRefCurrent {
/** Wrapper element */
wrapper: HTMLElement | null;
}