/** * Conflict Resolution Module * * Provides strategies for detecting and resolving conflicts during sync. */ import type { BaseRecord, Conflict, ConflictType, ConflictStrategy, ConflictResolver } from '../types'; /** * Input for conflict detection */ export interface ConflictDetectionInput { collectionId: string; recordId: string | number; localValue?: Partial; remoteValue?: Partial; baseValue?: T; localTimestamp: number; remoteTimestamp: number; } /** * Detect if a conflict exists between local and remote changes */ export declare function detectConflict(input: ConflictDetectionInput): Conflict | null; /** * Built-in conflict resolution strategies */ export declare const strategies: { /** * Local changes always win */ localWins(conflict: Conflict): Promise; /** * Remote changes always win */ remoteWins(conflict: Conflict): Promise; /** * Most recent timestamp wins */ latestWins(conflict: Conflict): Promise; /** * Merge non-conflicting fields, use latest for conflicts */ merge(conflict: Conflict): Promise; }; /** * Resolve a conflict using a strategy or custom resolver */ export declare function resolveConflict(conflict: Conflict, strategyOrResolver: ConflictStrategy | ConflictResolver): Promise; /** * Create a conflict resolver function from a strategy */ export declare function createConflictResolver(strategy: ConflictStrategy): ConflictResolver; /** * Builder for creating custom conflict resolvers with multiple rules */ export declare class ConflictResolverBuilder { private _defaultStrategy; private conflictTypeStrategies; private recordHandlers; /** * Set the default strategy for unmatched conflicts */ defaultStrategy(strategy: ConflictStrategy): this; /** * Set strategy for a specific conflict type */ forConflictType(type: ConflictType, strategyOrResolver: ConflictStrategy | ConflictResolver): this; /** * Set custom handler for a specific record ID */ forRecord(recordId: string | number, handler: ConflictResolver): this; /** * Build the resolver function */ build(): ConflictResolver; } //# sourceMappingURL=conflict-resolver.d.ts.map