category export interface IPasswordAuthenticator { /**
     * The username to authenticate with.
     */ username : string ; /**
     * The password to autehnticate with.
     */ password : string ; } category export interface ICertificateAuthenticator { /**
     * The path to the certificate which should be used for certificate authentication.
     */ certificatePath : string ; /**
     * The path to the key which should be used for certificate authentication.
     */ keyPath : string ; } category export class PasswordAuthenticator implements IPasswordAuthenticator { /**
     * The username that will be used to authenticate with.
     */ username : string ; /**
     * The password that will be used to authenticate with.
     */ password : string ; param username param password constructor ( username , password ) { this . username = username ; this . password = password ; } } category export class CertificateAuthenticator implements ICertificateAuthenticator { /**
     * The path to the certificate which should be used for certificate authentication.
     */ certificatePath : string ; /**
     * The path to the key which should be used for certificate authentication.
     */ keyPath : string ; param certificatePath param keyPath constructor ( certificatePath , keyPath ) { this . certificatePath = certificatePath ; this . keyPath = keyPath ; } } category export type Authenticator = IPasswordAuthenticator | ICertificateAuthenticator ;