/** * @nahisaho/yata-scale - Hash Partition Strategy * * Consistent hash-based partitioning for even distribution */ import type { PartitionStrategy, PartitionStrategyType, EntityMetadata } from '../types.js'; /** * Hash partition strategy using consistent hashing */ export declare class HashPartitionStrategy implements PartitionStrategy { private readonly shardIds; readonly type: PartitionStrategyType; private readonly virtualNodes; private ring; private sortedHashes; constructor(shardIds: string[], options?: { virtualNodes?: number; }); /** * Build the consistent hash ring */ private buildRing; /** * Simple hash function (FNV-1a variant) */ private hash; /** * Find the shard for a given hash using binary search */ private findShard; /** * Get shard ID for an entity */ getShardId(entityId: string, _metadata?: Partial): string; /** * Calculate remapping when shard count changes */ remap(oldShardCount: number, newShardCount: number): Map; /** * Find shard excluding certain shards */ private findShardExcluding; /** * Add a shard to the ring */ addShard(shardId: string): void; /** * Remove a shard from the ring */ removeShard(shardId: string): void; /** * Get shard count */ get shardCount(): number; } //# sourceMappingURL=HashPartitionStrategy.d.ts.map