import type { ApiClient } from '../services';
import { type EditorEffect, type EditorSiteId, type EditorPageId } from '../ui/editorHistory';
import type { EditorUiStoreInstance } from '../ui/editorUiStore';
type EditorEffectDrainContext = Readonly<{
    apiClient: ApiClient;
    siteId: EditorSiteId;
    pageId: EditorPageId;
    uiStore: EditorUiStoreInstance;
}>;
export type FailedEditorEffectResult = {
    kind: 'persist-reorder';
    message: string;
} | {
    kind: 'persist-insert';
    message: string;
} | {
    kind: 'persist-remove';
    message: string;
};
export type EditorEffectDrainResult = {
    ok: true;
} | {
    ok: false;
    failed: FailedEditorEffectResult;
};
export declare function drainEditorEffects(effects: readonly EditorEffect[], context: EditorEffectDrainContext): Promise<EditorEffectDrainResult>;
export {};
