import type { Operation } from '@dxos/operation';
import type * as UndoMapping from './undo-mapping';
/**
 * Lookup result from UndoRegistry.
 */
export type UndoMappingResult = {
    inverse: Operation.Definition<any, any>;
    /** Returns undefined to indicate the operation is not undoable. */
    deriveContext: (input: any, output: any) => any | undefined;
    /** Message provider - may be a static Label or a function. */
    message?: UndoMapping.MessageProvider<Operation.Definition<any, any>>;
};
/**
 * UndoRegistry interface - looks up inverse operations.
 */
export interface UndoRegistry {
    lookup: (operation: Operation.Definition<any, any>) => UndoMappingResult | undefined;
}
/**
 * Creates an UndoRegistry that looks up inverse operations.
 */
export declare const make: (getMappings: () => UndoMapping.UndoMapping[]) => UndoRegistry;
//# sourceMappingURL=undo-registry.d.ts.map