import { RedisClientService } from '../services/redis-client.service'; import { GlobalConfig } from '@n8n/config'; import { InstanceSettings } from 'n8n-core'; import { type Result } from 'n8n-workflow'; export type TtlRenewalResultKeyMissing = { id: 'key-missing'; }; export type TtlRenewalResultOtherHostIsLeader = { id: 'other-host-is-leader'; currentLeaderId: string; }; export type TtlRenewalResultSuccess = { id: 'success'; }; export type TtlRenewalResult = TtlRenewalResultKeyMissing | TtlRenewalResultOtherHostIsLeader | TtlRenewalResultSuccess; export declare class LeaderElectionClient { private readonly instanceSettings; private readonly redisClient; private readonly leaderKey; private readonly leaderKeyTtlInS; private get hostId(); constructor(instanceSettings: InstanceSettings, globalConfig: GlobalConfig, redisClientService: RedisClientService); getLeader(): Promise>; setLeaderIfNotExists(): Promise>; tryRenewLeaderTtl(): Promise>; clearLeader(): Promise>; destroy(): void; }