/**
* StaffMemberList - High-level component for displaying staff member lists
* Follows the pattern from LocationList.tsx
*
* @module React/StaffMemberList
*/
import React from 'react';
import { GenericListRepeaterProps, type ListVariant } from '@wix/headless-components/react';
import { type AsChildChildren } from '@wix/headless-utils/react';
import type { StaffMemberListServiceConfig } from '../../services/staff-member-list/staff-member-list.js';
import type { StaffMemberData } from '../../services/staff-member-list/staff-member-list.def.js';
/** Resource type ID for staff members */
export declare const TestIds: {
readonly staffMemberListRoot: "staff-member-list-root";
readonly staffMemberListStaffMembers: "staff-member-list-staff-members";
readonly staffMemberListStaffMember: "staff-member-list-staff-member";
readonly staffMemberListActionClear: "staff-member-list-action-clear";
readonly staffMemberListTotals: "staff-member-list-totals";
};
/**
* Props for the StaffMemberList root component
*/
export interface RootProps {
children: React.ReactNode;
staffMemberListConfig?: StaffMemberListServiceConfig;
className?: string;
variant?: ListVariant;
}
/**
* Root component that provides the StaffMemberList service context for rendering staff member lists.
*
* @component
* @example
* ```tsx
* import { StaffMemberList, StaffMember } from '@wix/bookings/react';
*
* function StaffMembersPage({ staffMemberListConfig }) {
* return (
*
* No staff members available}>
*
*
*
*
*
* );
* }
* ```
*/
export declare const Root: React.ForwardRefExoticComponent>;
/**
* Props for StaffMemberList.StaffMembers component
*/
export interface StaffMembersProps {
children: React.ReactNode;
emptyState?: React.ReactNode;
className?: string;
}
/**
* Container for the staff members list with empty state support.
* Wraps GenericList.Items internally (no separate Items export).
*
* @component
* @example
* ```tsx
* No staff members available}>
*
*
*
*
* ```
*/
export declare const StaffMembers: React.ForwardRefExoticComponent>;
/**
* Props for StaffMemberList.StaffMemberRepeater component
*/
export type StaffMemberRepeaterProps = GenericListRepeaterProps;
export declare const StaffMemberRepeater: React.ForwardRefExoticComponent>;
/**
* Props for StaffMemberList.Totals component
*/
export interface TotalsProps extends Omit, 'children'> {
asChild?: boolean;
children?: React.ReactNode | AsChildChildren<{
count: number;
hasStaffMembers: boolean;
}>;
}
/**
* Displays the total count of staff members.
*
* @component
* @example
* ```tsx
*
*
* // With asChild
*
* {({ count }) => {count} staff members available}
*
* ```
*/
export declare const Totals: React.ForwardRefExoticComponent>;
/**
* Props for StaffMemberList.Actions.Clear component
*/
export interface ClearProps extends Omit, 'children' | 'onClick'> {
asChild?: boolean;
children?: React.ReactNode | ((props: {
onClick: () => void;
}) => React.ReactNode);
label?: string;
/** Called after clearing with the staffMember that was cleared */
onClick?: (staffMember: StaffMemberData | null) => void;
}
/**
* Actions namespace for staff member list-level actions
*/
export declare const Actions: {
Clear: React.ForwardRefExoticComponent>;
};