export class IpnsRepublisher {
    /**
     * @param {import('./publisher').IpnsPublisher} publisher
     * @param {import('interface-datastore').Datastore} datastore
     * @param {PeerId} peerId
     * @param {import('@libp2p/interface-keychain').KeyChain} keychain
     * @param {object} options
     * @param {string} options.pass
     * @param {number} [options.initialBroadcastInterval]
     * @param {number} [options.broadcastInterval]
     */
    constructor(publisher: import('./publisher').IpnsPublisher, datastore: import('interface-datastore').Datastore, peerId: PeerId, keychain: import('@libp2p/interface-keychain').KeyChain, options?: {
        pass: string;
        initialBroadcastInterval?: number | undefined;
        broadcastInterval?: number | undefined;
    });
    _publisher: import("./publisher").IpnsPublisher;
    _datastore: import("interface-datastore").Datastore;
    _peerId: import("@libp2p/interface-peer-id").PeerId;
    _keychain: import("@libp2p/interface-keychain").KeyChain;
    _options: {
        pass: string;
        initialBroadcastInterval?: number | undefined;
        broadcastInterval?: number | undefined;
    };
    _republishHandle: {
        /** @type {null|(() => Promise<void>)} */
        _task: (() => Promise<void>) | null;
        /** @type {null|Promise<void>} */
        _inflightTask: null | Promise<void>;
        /** @type {null|NodeJS.Timeout} */
        _timeoutId: null | NodeJS.Timeout;
        /**
         * @param {function(): number} period
         */
        runPeriodically: (period: () => number) => void;
        cancel: () => Promise<void>;
    } | null;
    start(): Promise<void>;
    stop(): Promise<void>;
    /**
     * @param {PeerId} peerId
     * @param {string} pass
     * @param {AbortOptions} options
     */
    _republishEntries(peerId: PeerId, pass: string, options: AbortOptions): Promise<void>;
    /**
     * @param {PeerId} peerId
     * @param {AbortOptions} options
     */
    _republishEntry(peerId: PeerId, options: AbortOptions): Promise<void>;
    /**
     * @param {PeerId} peerId
     */
    _getPreviousValue(peerId: PeerId): Promise<Uint8Array>;
}
export type PrivateKey = import('@libp2p/interface-keys').PrivateKey;
export type PeerId = import('@libp2p/interface-peer-id').PeerId;
export type AbortOptions = import('@libp2p/interfaces').AbortOptions;
//# sourceMappingURL=republisher.d.ts.map