import { AvatarNetwork } from '@agorapulse/ui-components/avatar';
import { NavSelectorLeafAction, NavSelectorLeafDetails, NavSelectorLeaf } from '@agorapulse/ui-components/nav-selector';

/**
 * Usage Example:
 *
 * import { generateGroupElements, generateLeafElements } from './nav-selector-entry.mock';
 *
 * const mockNavSelectorEntries = [
 *     // Generate 30 groups with children using default settings
 *     ...generateGroupElements({
 *         count: 30,
 *     }),
 *
 *     // Generate individual leaf elements without groups
 *     ...generateLeafElements({
 *         count: 1,
 *     }),
 * ];
 */
/**
 * Utility function to generate leaf type elements
 * @param options Configuration options for generating leaf elements
 * @returns Array of leaf elements
 */
declare function generateLeafElements(options: {
    count: number;
    uidPrefix?: string;
    aliasPrefix?: string;
    startUid?: number;
    networks?: AvatarNetwork[];
    pictureUrlPattern?: string;
    disableReasonFrequency?: number;
    tokenInvalidFrequency?: number;
    featureLockedFrequency?: number;
    actions?: NavSelectorLeafAction[];
    details?: Partial<NavSelectorLeafDetails>[];
}, customizer?: (leaf: NavSelectorLeaf, index: number) => NavSelectorLeaf): NavSelectorLeaf[];
/**
 * Utility function to generate group type elements with children
 * @param options Configuration options for generating group elements
 * @returns Array of group elements
 */
declare function generateGroupElements(options: {
    count: number;
    startGroupId?: number;
    categories?: string[];
    childrenCounts?: number[];
    uidPrefix?: string;
    childUidPrefix?: string;
    childAliasPrefix?: string;
    startChildUid?: number;
    childUidIncrement?: number;
    networks?: AvatarNetwork[];
    pictureUrlPattern?: string;
    disableReasonFrequency?: number;
    tokenInvalidFrequency?: number;
    featureLockedFrequency?: number;
    actions?: NavSelectorLeafAction[];
    details?: Partial<NavSelectorLeafDetails>[];
}): any;

export { generateGroupElements, generateLeafElements };
