import type { Database, DatabaseWithSchema } from './database'; import { ShellApiWithMongoClass } from './decorators'; import type { Document, CheckMetadataConsistencyOptions } from '@mongosh/service-provider-core'; import type { ShardInfo, ShardingStatusResult, GenericDatabaseSchema, GenericServerSideSchema } from './helpers'; import { asPrintable } from './enums'; import type { UpdateResult } from './result'; import { CommandResult } from './result'; import type Mongo from './mongo'; import type AggregationCursor from './aggregation-cursor'; import type RunCommandCursor from './run-command-cursor'; import type { MQLQuery } from './mql-types'; export default class Shard extends ShellApiWithMongoClass { _database: DatabaseWithSchema; constructor(database: DatabaseWithSchema | Database); get _mongo(): Mongo; [asPrintable](): string; private _emitShardApiCall; enableSharding(database: string, primaryShard?: string): Promise; commitReshardCollection(namespace: string): Promise; abortReshardCollection(namespace: string): Promise; shardCollection(namespace: string, key: Document, unique?: boolean | Document, options?: Document): Promise; reshardCollection(namespace: string, key: Document, unique?: boolean | Document, options?: Document): Promise; _runShardCollection(command: 'shardCollection' | 'reshardCollection', namespace: string, key: Document, unique?: boolean | Document, options?: Document): Promise; status(verbose?: boolean, configDB?: DatabaseWithSchema): Promise>; addShard(url: string): Promise; addShardToZone(shard: string, zone: string): Promise; addShardTag(shard: string, tag: string): Promise; updateZoneKeyRange(namespace: string, min: Document, max: Document, zone: string | null): Promise; addTagRange(namespace: string, min: Document, max: Document, zone: string): Promise; removeRangeFromZone(ns: string, min: Document, max: Document): Promise; removeTagRange(ns: string, min: Document, max: Document): Promise; removeShardFromZone(shard: string, zone: string): Promise; removeShardTag(shard: string, tag: string): Promise; enableAutoSplit(): Promise; disableAutoSplit(): Promise; splitAt(ns: string, query: MQLQuery): Promise; splitFind(ns: string, query: MQLQuery): Promise; moveChunk(ns: string, query: MQLQuery, destination: string): Promise; moveRange(ns: string, toShard: string, min?: Document, max?: Document): Promise; balancerCollectionStatus(ns: string): Promise; enableBalancing(ns: string): Promise; disableBalancing(ns: string): Promise; private _setAllowMigrations; enableMigrations(ns: string): Promise; disableMigrations(ns: string): Promise; getBalancerState(): Promise; isBalancerRunning(): Promise; startBalancer(timeout?: number): Promise; stopBalancer(timeout?: number): Promise; setBalancerState(state: boolean): Promise; getShardedDataDistribution(options?: {}): Promise; startAutoMerger(): Promise; stopAutoMerger(): Promise; isAutoMergerEnabled(): Promise; disableAutoMerger(ns: string): Promise; enableAutoMerger(ns: string): Promise; checkMetadataConsistency(options?: CheckMetadataConsistencyOptions): Promise; shardAndDistributeCollection(ns: string, key: Document, unique?: boolean | Document, options?: Document): Promise; moveCollection(ns: string, toShard: string): Promise; abortMoveCollection(ns: string): Promise; unshardCollection(ns: string, toShard: string): Promise; abortUnshardCollection(ns: string): Promise; listShards(): Promise; isConfigShardEnabled(): Promise; }