import { AuthAccessCallback, AuthCallback, IPluginAuth, Logger, PackageAccess, PluginOptions, RemoteUser } from '@verdaccio/types';
import { CustomConfig } from '../types/index';
export default class AuthCustomPlugin implements IPluginAuth<CustomConfig> {
    logger: Logger;
    private usersTableClient;
    private groupsTableClient;
    constructor(config: CustomConfig, options: PluginOptions<CustomConfig>);
    private initializeTableClients;
    authenticate(user: string, password: string, cb: AuthCallback): void;
    allow_access(user: RemoteUser, pkg: PackageAccess, cb: AuthAccessCallback): void;
    allow_publish(user: RemoteUser, pkg: PackageAccess, cb: AuthAccessCallback): void;
    allow_unpublish(user: RemoteUser, pkg: PackageAccess, cb: AuthAccessCallback): void;
    private getUserGroups;
    adduser(username: string, password: string, cb: AuthCallback): Promise<void>;
    addUserToGroups(username: string, groups: string[]): Promise<void>;
    private hashPassword;
    private verifyPassword;
}
