import type { CalendarEventStatus } from '../calendar/calendar'; import type { WorkflowStatusOption } from './workflow-status'; /** The six appointment statuses, in the order the platform lists them. */ export declare const APPOINTMENT_WORKFLOW_STATUSES: readonly CalendarEventStatus[]; /** The control value for an appointment nobody has set a status on. Never * a real status. */ export declare const APPOINTMENT_NO_STATUS: "none"; /** Each status's label key (calendar.status.*). Internal: the calendar * pattern and the details panel read it; the package does not export it. */ export declare const APPOINTMENT_STATUS_LABEL_KEY: Record; /** Narrows a WorkflowStatusControl value back to an appointment status. * False for APPOINTMENT_NO_STATUS and anything unknown. */ export declare function isCalendarEventStatus(value: unknown): value is CalendarEventStatus; export interface UseAppointmentWorkflowStatusOptions { /** * The statuses the user may choose, in menu order. Pass only the permitted * transitions. Default: all six, in APPOINTMENT_WORKFLOW_STATUSES order. * The current status is always included. When the user may not set it, it * is listed first so the control can show it. Unknown entries and * duplicates are dropped. */ statuses?: readonly CalendarEventStatus[]; /** Statuses shown but not selectable: a transition that must stay visible * but is not allowed now. */ disabledStatuses?: readonly CalendarEventStatus[]; /** * Translated label overrides. Default: the kit's calendar status labels * (calendar.status.*) and "No status" (workflowStatus.noStatus). */ labels?: Partial>; } export interface AppointmentWorkflowStatus { /** Pass as `value` to WorkflowStatusControl or WorkflowStatusDisplay: the * status, or APPOINTMENT_NO_STATUS. */ value: string; /** Pass as WorkflowStatusControl `options`. Always contains `value`. A * missing status leads with a disabled, neutral "No status" option. */ options: WorkflowStatusOption[]; /** The option for `value`; pass as WorkflowStatusDisplay `option`. */ option: WorkflowStatusOption; /** The option for any status, permitted or not (history lines, chips). * Null or unknown gives the "No status" option. */ optionFor: (status: CalendarEventStatus | null | undefined) => WorkflowStatusOption; } /** * Builds WorkflowStatusControl / WorkflowStatusDisplay inputs for an * appointment status, with the same icon, tone and label the calendar card, * peek and details use. Unknown `current` values are treated as no status, * which the user may then overwrite, so map every host state onto the six * first. * Memoised on language, `current`, and the content of `statuses`, * `disabledStatuses` and `labels`, so inline arrays are fine. */ export declare function useAppointmentWorkflowStatus(current: CalendarEventStatus | null | undefined, options?: UseAppointmentWorkflowStatusOptions): AppointmentWorkflowStatus; //# sourceMappingURL=appointment-workflow-status.d.ts.map