import { BeforeHandleEventPlugin, BeforeHandleEventResult, Event, EventRepository, Filter, Logger, Pubkey } from '@nostr-relay/common';
import { Agent } from 'http';
export type WotGuardOptions = {
    enabled?: boolean;
    trustAnchorPubkey?: Pubkey;
    trustDepth?: number;
    logger?: Logger;
    eventRepository?: EventRepository;
    relayUrls?: string[];
    skipFilters?: Filter[];
    agent?: Agent;
};
export declare class WotGuard implements BeforeHandleEventPlugin {
    private readonly logger;
    private readonly eventRepository?;
    private enabled;
    private trustAnchorPubkey?;
    private trustDepth;
    private relayUrls;
    private skipFilters;
    private intervalId;
    private trustedPubkeySet;
    private lastRefreshedAt;
    private agent?;
    constructor({ trustAnchorPubkey, trustDepth, enabled, logger, eventRepository, relayUrls, skipFilters, agent, }: WotGuardOptions);
    init(): Promise<void>;
    setEnabled(enabled: boolean): void;
    getEnabled(): boolean;
    setTrustAnchorPubkey(pubkey: Pubkey): void;
    setTrustDepth(depth: number): void;
    setAgent(agent: Agent): void;
    getLastRefreshedAt(): number;
    getTrustedPubkeyCount(): number;
    checkPubkey(pubkey: Pubkey): boolean;
    destroy(): void;
    beforeHandleEvent(event: Event): BeforeHandleEventResult;
    refreshTrustedPubkeySet(): Promise<void>;
    private fetchNextDepthPubkeySet;
    private fetchEventFromLocal;
}
