/// <reference types="node" resolution-mode="require"/>
import EventEmitter from "events";
import { DnsRecordSetSource } from "../types/dns-record-events.mjs";
import { DnsZoneRecordClient, DnsZoneRecordSets } from "../types/dns-zone-record-client.mjs";
export declare class Route53DnsRecordSetStore extends EventEmitter implements DnsRecordSetSource {
    private readonly client;
    private readonly isRecordsCached;
    private readonly logger;
    private readonly dnsRecordsToUpdate;
    private zoneRecordSets;
    private hasRetrievedFirstRecordSets;
    constructor(client: DnsZoneRecordClient, isRecordsCached: boolean, hostnames: string[]);
    getRecords: () => Promise<DnsZoneRecordSets[]>;
    updateRecordsAfterSync: (updatedRecordsSets: DnsZoneRecordSets[], updateStatuses: Map<string, boolean>) => void;
    private emitDnsRecordState;
}
