import * as react_jsx_runtime from 'react/jsx-runtime'; import { ReactNode } from 'react'; import { UseSchedulingAdminResult } from '../../../hooks/useSchedulingAdmin.mjs'; import { UseGoogleCalendarConnectResult } from '../../../hooks/useGoogleCalendarConnect.mjs'; import { SchedulingResource } from '../../../types/scheduling.mjs'; interface SchedulingResourcesTableRowActions { update: (patch: Partial) => Promise; remove: () => Promise; /** Whether this row is currently expanded. Driven by table-internal state. */ expanded: boolean; /** Flip expansion state for this row. */ toggleExpanded: () => void; } interface SchedulingResourcesTableProps { admin: UseSchedulingAdminResult; /** * Optional. When provided, the sub-calendar dropdown is sourced from * `connect.availableCalendars`. When omitted (or when the integration is * not connected), the dropdown collapses to a "Connect Google to map * calendars" hint. */ connect?: UseGoogleCalendarConnectResult; className?: string; rowClassName?: string; /** * Wrapper className applied to the per-row expansion container. Only * rendered when `renderExpanded` returns non-null and the row is in the * expanded state. */ expandedClassName?: string; /** * Class for the expand/collapse toggle button when using the default row * renderer. Defaults to `buttonClassName`. */ expandToggleClassName?: string; inputClassName?: string; buttonClassName?: string; onCreated?: (resource: SchedulingResource) => void; renderRow?: (resource: SchedulingResource, actions: SchedulingResourcesTableRowActions) => ReactNode; /** * Optional renderer for the per-row expanded panel. When provided, each * row gets a built-in expand toggle (default renderer) or `actions.toggleExpanded` * (custom renderer) and the returned node renders inside the row's * expansion container. * * Use this to mount per-stylist sub-primitives like * ``, ``, and * ``. When omitted, no expansion UI is rendered — * the table behaves exactly as it did before this prop existed. */ renderExpanded?: (resource: SchedulingResource, actions: SchedulingResourcesTableRowActions) => ReactNode; addLabel?: ReactNode; } declare function SchedulingResourcesTable({ admin, connect, className, rowClassName, expandedClassName, expandToggleClassName, inputClassName, buttonClassName, onCreated, renderRow, renderExpanded, addLabel, }: SchedulingResourcesTableProps): react_jsx_runtime.JSX.Element; export { SchedulingResourcesTable, type SchedulingResourcesTableProps, type SchedulingResourcesTableRowActions };