import { Router } from 'express';
import { ServerScope } from 'nano';
import { Authenticator } from 'passport';
import { Mailer } from './mailer';
import { Middleware } from './middleware';
import { OAuth } from './oauth';
import { Config } from './types/config';
import { User } from './user';
export declare class CouchAuth extends User {
    router: Router;
    passport: Authenticator;
    registerProvider: OAuth['registerProvider'];
    registerOAuth2: OAuth['registerOAuth2'];
    registerTokenProvider: OAuth['registerTokenProvider'];
    sendEmail: Mailer['sendEmail'];
    requireAuth: Middleware['requireAuth'];
    requireRole: Middleware['requireRole'];
    requireAnyRole: Middleware['requireAnyRole'];
    requireAllRoles: Middleware['requireAllRoles'];
    constructor(configData: Partial<Config>, couchServer?: ServerScope, passport?: Authenticator);
}
export * as TemplateUtils from './template-utils';
export { CouchAuth as SuperLogin };
