import type { VerifierOptions } from './config.js'; import { UserspaceError } from './errors.js'; import type { ErrorCode } from './errors.js'; import type { KeyStatus } from './keys.js'; import type { Session, Transport } from './verify.js'; export type { ErrorCode, KeyStatus, Session, Transport, VerifierOptions }; export { UserspaceError }; export declare const SESSION_COOKIE = "__Host-session"; export declare const HINT_COOKIE = "__Host-session-hint"; export type SessionState = 'signed-in' | 'unknown' | 'signed-out'; export type Reason = 'expired' | 'not yet valid' | 'unknown key' | 'wrong token type' | 'issuer mismatch' | 'malformed' | 'no credential' | 'cross-origin'; export type Authentication = { ok: true; state: 'signed-in'; session: Session; } | { ok: false; preflight: true; state: 'signed-out'; } | { ok: false; preflight?: false; state: 'unknown' | 'signed-out'; status: 401 | 403 | 503; reason?: Reason; challenge?: string; error: UserspaceError; }; export interface RequestLike { method: string; url: string; headers: Headers; } export interface Verifier { authenticate(request: RequestLike): Promise; unauthorized(refusal: Extract): Response; verifyToken(token: string): Promise; keyStatus(): KeyStatus; } export declare const createVerifier: (options?: VerifierOptions) => Verifier;