/** * Core StaffMemberList Component * Bridge between StaffMemberListService and headless components using render props * * @module Core/StaffMemberList */ import React from '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'; /** * Props for StaffMemberList.Root component */ export interface RootProps { children: React.ReactNode; staffMemberListServiceConfig: StaffMemberListServiceConfig; } /** * Root component that provides StaffMemberList service context * * @component * @example * ```tsx * * * {({ staffMembers }) => ( * // render staff members * )} * * * ``` */ export declare function Root(props: RootProps): React.ReactNode; /** * Render props for StaffMembers component */ export interface StaffMembersRenderProps { /** Staff members array from the service */ staffMembers: StaffMemberData[]; /** Whether there are any staff members */ hasStaffMembers: boolean; /** Whether staff members are currently loading */ isLoading: boolean; /** Error message if any */ error: string | null; } /** * Props for StaffMembers render prop component */ export interface StaffMembersProps { children: (data: StaffMembersRenderProps) => React.ReactNode; } /** * Core component that provides access to staff members list via render props * * @component * @example * ```tsx * * {({ staffMembers, hasStaffMembers, isLoading }) => ( * isLoading ? : staffMembers.map(...) * )} * * ``` */ export declare function StaffMembers(props: StaffMembersProps): React.ReactNode; /** * Render props for Actions component */ export interface ActionsRenderProps { /** Select a staff member */ select: (staffMember: StaffMemberData) => void; /** Currently selected staff member */ selectedStaffMember: StaffMemberData | null; /** Clear the staff member resource from BookingService */ clear: () => void; } /** * Props for Actions render prop component */ export interface ActionsProps { children: (actions: ActionsRenderProps) => React.ReactNode; } /** * Core component that provides staff member actions via render props * * @component * @example * ```tsx * * {({ select, selectedStaffMember }) => ( * * )} * * ``` */ export declare function Actions(props: ActionsProps): React.ReactNode;