/// import type { Document } from '../../bson'; import type { Callback, ClientMetadataOptions } from '../../utils'; import type { HandshakeDocument } from '../connect'; import type { Connection, ConnectionOptions } from '../connection'; import type { MongoCredentials } from './mongo_credentials'; export declare type AuthContextOptions = ConnectionOptions & ClientMetadataOptions; /** Context used during authentication */ export declare class AuthContext { /** The connection to authenticate */ connection: Connection; /** The credentials to use for authentication */ credentials?: MongoCredentials; /** The options passed to the `connect` method */ options: AuthContextOptions; /** A response from an initial auth attempt, only some mechanisms use this (e.g, SCRAM) */ response?: Document; /** A random nonce generated for use in an authentication conversation */ nonce?: Buffer; constructor(connection: Connection, credentials: MongoCredentials | undefined, options: AuthContextOptions); } export declare class AuthProvider { /** * Prepare the handshake document before the initial handshake. * * @param handshakeDoc - The document used for the initial handshake on a connection * @param authContext - Context for authentication flow */ prepare(handshakeDoc: HandshakeDocument, authContext: AuthContext, callback: Callback): void; /** * Authenticate * * @param context - A shared context for authentication flow * @param callback - The callback to return the result from the authentication */ auth(context: AuthContext, callback: Callback): void; } //# sourceMappingURL=auth_provider.d.ts.map