import { SchedulingService, SchedulingResource, SchedulingResourceServiceLink, SchedulingWorkingHours, SchedulingTimeOff, SchedulingSettings } from '../types/scheduling.js'; interface UseSchedulingAdminOptions { apiBase?: string; /** Skip initial GETs on mount; consumer drives via .refresh(). */ skipInitialLoad?: boolean; /** * When true (default), creating a service auto-fans-out * scheduling_resource_service rows linking the new service to every * active resource — and creating a resource fans out to every active * service. Default = "every stylist does every service" — owners opt OUT * via the services picker, not in. * * Set to false to disable the convenience and force the consumer to * write resource_service rows manually after each create. */ autoLinkResourceServices?: boolean; } interface AdminEntity { id: string; } interface CrudResult { list: T[]; loading: boolean; error: string | null; refresh: () => Promise; create: (input: Partial) => Promise; update: (id: string, patch: Partial) => Promise; remove: (id: string) => Promise; } interface SingletonResult { value: T | null; loading: boolean; error: string | null; refresh: () => Promise; update: (patch: Partial) => Promise; } interface UseSchedulingAdminResult { basePath: string; services: CrudResult; resources: CrudResult; resourceServices: CrudResult; workingHours: CrudResult; timeOff: CrudResult; settings: SingletonResult; } declare function useSchedulingAdmin(opts?: UseSchedulingAdminOptions): UseSchedulingAdminResult; export { type CrudResult, type SingletonResult, type UseSchedulingAdminOptions, type UseSchedulingAdminResult, useSchedulingAdmin };