import type { PlatformInfo } from '../snapshot/platformInfo.js'; import type { SnapshotInstance } from '../snapshot/snapshot.js'; export interface DiffResult { $$diff: true; i: Record; r: number[]; m: Record; } export interface Typed { type: string; __listItemPlatformInfo?: PlatformInfo; } export declare function isEmptyDiffResult(diffResult: DiffResult): boolean; export declare function diffArrayLepus(before: A[], after: B[], isSameType: (a: A, b: B) => boolean, onDiffChildren: (a: A, b: B, oldIndex: number, newIndex: number) => void, isListHasItemKey: boolean): DiffResult; export declare function diffArrayAction(before: T[], diffResult: DiffResult, onInsert: (node: K, target: T | undefined) => T, onRemove: (node: T) => void, onMove: (node: T, target: T | undefined) => void): T[]; export interface HydrationOptions { skipUnRef?: boolean; swap?: Record; } export declare function hydrate(before: SnapshotInstance, after: SnapshotInstance, options?: HydrationOptions): void;