/** * Core StaffMember Component - Parses staff member data * Handles staff member display with name * * @module Core/StaffMember */ import React from 'react'; import type { StaffMember as StaffMemberType } from '@wix/auto_sdk_bookings_services'; /** * StaffMember type from SDK * Contains staffMemberId (which equals resource id), name, and mainMedia */ export type StaffMemberData = StaffMemberType; /** * Staff member render props passed to children */ export interface StaffMemberRenderProps { /** Staff member name */ name: string | undefined; /** Raw staff member object */ rawStaffMember: StaffMemberData | null; } /** * Props for the Core StaffMember Root component */ export interface RootProps { /** Raw staff member data */ staffMember?: StaffMemberData; /** Children */ children: React.ReactNode; } /** * Props for the Core StaffMember Data component */ export interface DataProps { /** Children render prop that receives staff member data */ children: (props: StaffMemberRenderProps) => React.ReactNode; } /** * Hook to access staff member context from CoreStaffMember.Root * @throws Error if used outside of CoreStaffMember.Root */ export declare function useStaffMemberContext(): StaffMemberRenderProps; /** * Core StaffMember Root component that provides staff member context. * Parses staff member data and makes it available to all child components via context. * * @component * @example * ```tsx * * * * ``` */ export declare function Root(props: RootProps): React.ReactNode; /** * Core StaffMember Data component that exposes staff member data via render props. * Must be used within a CoreStaffMember.Root component. * * @component * @example * ```tsx * * * {({ name, rawStaffMember }) => ( *
* {name} *
* )} *
*
* ``` */ export declare function Data(props: DataProps): React.ReactNode; /** * Props for Actions render prop component */ export interface ActionsProps { children: (actions: { select: () => void; rawStaffMember: StaffMemberData | null; selected: boolean; }) => React.ReactNode; } /** * Core component that provides staff member selection actions via render props. * Integrates with BookingService to persist selection state. * * @component * @example * ```tsx * * * {({ select, selected, rawStaffMember }) => ( * * )} * * * ``` */ export declare function Actions(props: ActionsProps): React.ReactNode;