/**
 * @license
 * Copyright 2022-2025 Matter.js Authors
 * SPDX-License-Identifier: Apache-2.0
 */
import { OtaSoftwareUpdateRequestor } from "#clusters/ota-software-update-requestor";
import { Endpoint } from "#endpoint/Endpoint.js";
import { Duration } from "#general";
import type { ClientNode } from "#node/ClientNode.js";
import { Fabric, PeerAddress } from "#protocol";
export declare class OtaAnnouncements {
    #private;
    constructor(endpoint: Endpoint, ownFabric: Fabric, interval: Duration);
    /**
     * Determine if we can request an update for the given node and return node meta-data needed for the process.
     * The Node needs to be commissioned (have a peer address), being not disabled, and having an active subscription
     * (to not work with outdated data).
     * When a node is applicable for updates, it also subscribes to softwareVersion changes to be able to react
     */
    peerApplicableForUpdate(peer: ClientNode): {
        otaEndpoint: Endpoint<import("../../../index.js").EndpointType.Empty>;
        peerAddress: {
            readonly fabricIndex: import("#types").FabricIndex;
            readonly nodeId: import("#types").NodeId;
        };
    } | undefined;
    /** Announce ourselves as OTA Provider to the given node's endpoint */
    announceOtaProvider(endpoint: Endpoint, peerAddress: PeerAddress, announcementReason?: OtaSoftwareUpdateRequestor.AnnouncementReason): Promise<void>;
    close(): Promise<void>;
}
//# sourceMappingURL=OtaAnnouncements.d.ts.map