/**
 * @license
 * Copyright 2022-2026 Matter.js Authors
 * SPDX-License-Identifier: Apache-2.0
 */
import { Advertisement } from "#advertisement/Advertisement.js";
import type { Advertiser } from "#advertisement/Advertiser.js";
import type { ServiceDescription } from "#advertisement/ServiceDescription.js";
import { DnsRecord } from "@matter/general";
import type { MdnsAdvertiser } from "./MdnsAdvertiser.js";
/**
 * Base class for MDNS advertisements.
 *
 * Individual classes specialize for each type of service.
 */
export declare abstract class MdnsAdvertisement<T extends ServiceDescription = ServiceDescription> extends Advertisement<T> {
    #private;
    advertiser: MdnsAdvertiser;
    /**
     * The device qname.
     */
    qname: string;
    constructor(advertiser: MdnsAdvertiser, qname: string, description: T);
    protected abstract ptrRecords: DnsRecord[];
    protected get txtValues(): Record<string, unknown>;
    run(context: Advertisement.ActivityContext, event?: Advertiser.BroadcastEvent): Promise<void>;
    /**
     * Broadcast a single announcement immediately.
     */
    broadcast(): Promise<void>;
    /**
     * Broadcast expiration announcement immediately.
     */
    expire(): Promise<void>;
    serviceConnected(): void;
    serviceDisconnected(): void;
    protected onCreate(): Promise<void>;
    protected onClose(): Promise<void>;
}
//# sourceMappingURL=MdnsAdvertisement.d.ts.map