import { DocumentScope } from 'nano'; export interface DBAdapter { storeKey: Function; removeKeys: Function; initSecurity: Function; retrieveKey: Function; extendKey: (string: any, number: any) => Promise; authorizeKeys: (db: DocumentScope, keys: Record | Array | string) => Promise; deauthorizeKeys: (db: DocumentScope, keys: string[] | string) => Promise; } export interface SessionAdapter { storeKey: (key: string, life: number, data: string) => Promise; deleteKeys: (keys: string[]) => Promise; getKey: (key: string) => Promise; quit: Function; }