import { OnApplicationBootstrap } from '@nestjs/common';
import { EventEmitter2 } from '@nestjs/event-emitter';
import { LeaderElectionOptions } from './leader-election-options.interface';
export declare class LeaderElectionService implements OnApplicationBootstrap {
    private options;
    private readonly eventEmitter;
    private readonly logger;
    private kubeClient;
    private watch;
    private readonly leaseName;
    private readonly namespace;
    private readonly renewalInterval;
    private readonly durationInSeconds;
    private isLeader;
    private readonly logAtLevel;
    private leaseRenewalTimeout;
    private readonly awaitLeadership;
    LEADER_IDENTITY: string;
    constructor(options: LeaderElectionOptions, eventEmitter: EventEmitter2);
    onApplicationBootstrap(): Promise<void>;
    private runLeaderElectionProcess;
    private tryToBecomeLeader;
    private acquireLease;
    private renewLease;
    private getLease;
    private createLease;
    private isLeaseExpired;
    private isLeaseHeldByUs;
    private gracefulShutdown;
    private releaseLease;
    private emitLeaderElectedEvent;
    private emitLeadershipLostEvent;
    private becomeLeader;
    private loseLeadership;
    private watchLeaseObject;
    private scheduleLeaseRenewal;
    private handleLeaseUpdate;
    private handleLeaseDeletion;
}
