import type { MongoCollectionSpec, MongoDriver, MongoFindOptions, MongoIndexAccess, MongoIterOptions } from '@struktoai/mirage-core/core/mongodb/_driver'; import type { EntityKind } from '@struktoai/mirage-core/core/mongodb/types'; interface MongoCollectionLike { find: (filter: Record, options?: { projection?: Record; }) => { sort: (sort: Record) => MongoCursorLike; skip: (n: number) => MongoCursorLike; limit: (n: number) => MongoCursorLike; batchSize: (n: number) => MongoCursorLike; toArray: () => Promise[]>; [Symbol.asyncIterator]?: () => AsyncIterableIterator>; }; countDocuments: (filter?: Record) => Promise; listIndexes: () => { toArray: () => Promise[]>; }; aggregate: (pipeline: unknown[]) => { toArray: () => Promise[]>; }; watch: (pipeline?: unknown[]) => AsyncIterableIterator> & { close: () => Promise; }; } interface MongoCursorLike { sort: (sort: Record) => MongoCursorLike; skip: (n: number) => MongoCursorLike; limit: (n: number) => MongoCursorLike; batchSize: (n: number) => MongoCursorLike; toArray: () => Promise[]>; [Symbol.asyncIterator]?: () => AsyncIterableIterator>; } interface MongoDbLike { listCollections: (filter?: Record) => { toArray: () => Promise[]>; }; collection: (name: string) => MongoCollectionLike; admin: () => { listDatabases: () => Promise<{ databases: { name: string; }[]; }>; }; } interface MongoClientLike { connect: () => Promise; db: (name?: string) => MongoDbLike; close: () => Promise; } export declare class MongoDBStore implements MongoDriver { readonly uri: string; private clientPromise; constructor(uri: string); listDatabases(): Promise; listCollections(database: string, kind?: EntityKind | null): Promise; listCollectionsDetailed(database: string, filter?: { name?: string; }): Promise; findDocuments>(database: string, collection: string, filter?: Record, options?: MongoFindOptions): Promise; iterDocuments>(database: string, collection: string, options?: MongoIterOptions): AsyncIterableIterator; iterInserts>(database: string, collection: string): AsyncIterableIterator; countDocuments(database: string, collection: string, filter?: Record): Promise; listIndexes(database: string, collection: string): Promise[]>; getIndexStats(database: string, collection: string): Promise>; close(): Promise; private _client; protected _connect(): Promise; } export {}; //# sourceMappingURL=store.d.ts.map