import { RsaPublicKey, RsaPrivateKey, KeyLike } from 'crypto'; import { Connection } from './Connection.js'; export type AuthPlugin = (pluginMetadata: { connection: Connection; command: string; }) => ( pluginData: Buffer, ) => Promise | string | Buffer | Promise | null; type AuthPluginDefinition = (pluginOptions?: T) => AuthPlugin; export const authPlugins: { caching_sha2_password: AuthPluginDefinition<{ overrideIsSecure?: boolean; serverPublicKey?: RsaPublicKey | RsaPrivateKey | KeyLike; onServerPublicKey?: (data: Buffer) => void; }>; mysql_clear_password: AuthPluginDefinition<{ password?: string; }>; mysql_native_password: AuthPluginDefinition<{ password?: string; passwordSha1?: string; }>; sha256_password: AuthPluginDefinition<{ serverPublicKey?: RsaPublicKey | RsaPrivateKey | KeyLike; onServerPublicKey?: (data: Buffer) => void; }>; };