import type { ScheduledPublicationState } from './scheduled-publication-state.js'; export type { ScheduledPublicationInfo } from './scheduled-publication-state.js'; import type { ScheduledPublicationInfo } from './scheduled-publication-state.js'; export interface SchedulePublicationInput { publishAt: string; } export interface UseScheduledPublicationArgs { disabled?: boolean; schedule: ScheduledPublicationInfo | null; onSchedule?: (input: SchedulePublicationInput) => Promise; onConfirm?: () => Promise; onCancel?: () => Promise; hasUnsavedChanges: boolean; onUnsavedChanges: () => void; } export interface UseScheduledPublicationReturn { state: ScheduledPublicationState; timeZone: string; busy: boolean; /** True when any surface has something to render for this document. */ isActive: boolean; openSchedule: () => void; confirm: () => Promise; cancel: () => Promise; /** The schedule / reschedule modal. Render once, anywhere in the form. */ modal: React.ReactNode; } export declare function useScheduledPublication({ disabled, schedule, onSchedule, onConfirm, onCancel, hasUnsavedChanges, onUnsavedChanges, }: UseScheduledPublicationArgs): UseScheduledPublicationReturn; /** * One metadata cell for the form's status bar, matching the Status / * Last modified / Created cells in scale, sitting immediately after the status * cell — an armed schedule says where the document is headed, which continues * what Status says about it rather than belonging with the timestamps. * * Written as a single phrase in the success colour rather than the label/value * pair its neighbours use: it is the one cell reporting something pending * rather than something already true, and it should read that way at a glance. * Only an armed schedule appears here; every other state is carried by the * notice instead, so the two never say the same thing twice. */ export declare function ScheduledPublicationCell({ state, timeZone, }: { state: ScheduledPublicationState; timeZone: string; }): import("react").JSX.Element | null; /** * The durable notice for a suspended, overdue or failing schedule. Not * dismissible: `needs_reconfirm` has to stay on screen until an editor acts on * it, long after the toast that announced the suspension has gone. */ export declare function ScheduledPublicationNotice({ state, timeZone, busy, onConfirm, onReschedule, onCancel, }: { state: ScheduledPublicationState; timeZone: string; busy: boolean; onConfirm: () => void; onReschedule: () => void; onCancel: () => void; }): import("react").JSX.Element | null;