/**
 * Autosave slice for managing autosave status and handle registration.
 *
 * This slice is critical for the publish workflow:
 * 1. Autosave hooks register handles via registerAutosave()
 * 2. Before publish, saveNow() / flushAllPending() may be called to ensure all changes are saved
 * 3. useEntryActions waits for all saves to complete via status subscriptions
 */
import type { AutosaveStatus, AutosaveHandle, AutosaveType } from './types';
export type AutosaveState = {
    metadata: AutosaveStatus;
    content: AutosaveStatus;
    blocks: AutosaveStatus;
    setMetadataStatus: (status: Partial<AutosaveStatus>) => void;
    setContentStatus: (status: Partial<AutosaveStatus>) => void;
    setBlocksStatus: (status: Partial<AutosaveStatus>) => void;
    registerAutosave: (type: AutosaveType, handle: AutosaveHandle) => void;
    unregisterAutosave: (type: AutosaveType) => void;
    /**
     * Immediately saves the given autosave types by triggering and flushing their handles.
     *
     * Unlike flushAllPending(), this does not rely on a debounced callback being pending, so it
     * works for manual-save mode where background triggers are disabled.
     */
    saveNow: (types: AutosaveType[]) => void;
    flushAllPending: () => void;
};
/**
 * Creates the autosave slice for managing autosave status and handles.
 *
 * @param triggerUpdate - Callback to trigger React re-renders
 */
export declare function createAutosaveSlice(triggerUpdate: () => void): AutosaveState;
