import EventEmitter from "events"; import { SignedEvent, StampedEvent } from "@welshman/util"; import { Socket } from "./socket.js"; import { Unsubscriber } from "./util.js"; export declare enum AuthStatus { None = "none", Requested = "requested", PendingSignature = "pending_signature", DeniedSignature = "denied_signature", PendingResponse = "pending_response", Forbidden = "forbidden", Ok = "ok" } export type AuthResult = { ok: boolean; reason?: string; }; export declare enum AuthStateEvent { Status = "auth:event:status" } export type AuthStateEvents = { [AuthStateEvent.Status]: (status: AuthStatus) => void; }; type Sign = (event: StampedEvent) => Promise; export declare class AuthState extends EventEmitter { readonly socket: Socket; challenge: string | undefined; request: string | undefined; details: string | undefined; status: AuthStatus; _unsubscribers: Unsubscriber[]; constructor(socket: Socket); setStatus(status: AuthStatus): void; doAuth(sign: Sign): Promise; attemptAuth(sign: Sign): Promise; retryAuth(sign: Sign): Promise; cleanup(): void; } export {}; //# sourceMappingURL=auth.d.ts.map