authelia/server/types/speakeasy.d.ts

96 lines
2.0 KiB
TypeScript

declare module "speakeasy" {
export = speakeasy
interface SharedOptions {
encoding?: string
algorithm?: string
}
interface DigestOptions extends SharedOptions {
secret: string
counter: number
}
interface HOTPOptions extends SharedOptions {
secret: string
counter: number
digest?: Buffer
digits?: number
}
interface HOTPVerifyOptions extends SharedOptions {
secret: string
token: string
counter: number
digits?: number
window?: number
}
interface TOTPOptions extends SharedOptions {
secret: string
time?: number
step?: number
epoch?: number
counter?: number
digits?: number
}
interface TOTPVerifyOptions extends SharedOptions {
secret: string
token: string
time?: number
step?: number
epoch?: number
counter?: number
digits?: number
window?: number
}
interface GenerateSecretOptions {
length?: number
symbols?: boolean
otpauth_url?: boolean
name?: string
issuer?: string
}
interface GeneratedSecret {
ascii: string
hex: string
base32: string
qr_code_ascii: string
qr_code_hex: string
qr_code_base32: string
google_auth_qr: string
otpauth_url: string
}
interface OTPAuthURLOptions extends SharedOptions {
secret: string
label: string
type?: string
counter?: number
issuer?: string
digits?: number
period?: number
}
interface Speakeasy {
digest: (options: DigestOptions) => Buffer
hotp: {
(options: HOTPOptions): string,
verifyDelta: (options: HOTPVerifyOptions) => boolean,
verify: (options: HOTPVerifyOptions) => boolean,
}
totp: {
(options: TOTPOptions): string
verifyDelta: (options: TOTPVerifyOptions) => boolean,
verify: (options: TOTPVerifyOptions) => boolean,
}
generateSecret: (options?: GenerateSecretOptions) => GeneratedSecret
generateSecretASCII: (length?: number, symbols?: boolean) => string
otpauthURL: (options: OTPAuthURLOptions) => string
}
const speakeasy: Speakeasy
}