import * as Bunyan from "bunyan"; import { CallHandler, ExecutionContext, NestInterceptor } from '@nestjs/common'; import { Observable } from 'rxjs'; import { Request as ExpressRequest } from "express"; import { IdentifiedBillBase } from '../types'; import { StringTo } from '../helper-types'; export declare type PrincipalFnRet = TIdentifiedBill | null | false; export declare type PrincipalFn = (headers: StringTo, cookies: StringTo, request: ExpressRequest) => PrincipalFnRet | Promise>; export interface HttpAuthnOptions { principalFn: PrincipalFn; anonymousScopes: ReadonlyArray; logger?: Bunyan; } export declare class HttpAuthnInterceptor implements NestInterceptor { private readonly _options; private readonly _logger; constructor(_options: HttpAuthnOptions); private _doAuthn; private _unauthorized; private _buildIdentity; private _shortCircuitBadAuth; intercept(context: ExecutionContext, next: CallHandler): Promise>; }