/**
 * @license
 * Copyright 2022-2026 Matter.js Authors
 * SPDX-License-Identifier: Apache-2.0
 */
import { BlePeripheralInterface } from "#ble/Ble.js";
import { Bytes, Duration, Lifetime } from "#general";
import { DatatypeModel } from "#model";
import { Advertisement } from "../Advertisement.js";
import { Advertiser } from "../Advertiser.js";
import { ServiceDescription } from "../ServiceDescription.js";
export declare class BleAdvertiser extends Advertiser {
    #private;
    constructor(peripheral: BlePeripheralInterface, options?: BleAdvertiser.Options);
    get peripheral(): BlePeripheralInterface;
    get config(): BleAdvertiser.Configuration;
    getAdvertisement(description: ServiceDescription): Advertisement | undefined;
}
export declare namespace BleAdvertiser {
    /**
     * Advertisement configuration.
     *
     * All intervals are in milliseconds.
     */
    interface Configuration {
        /**
         * Lifetime of advertiser owner.
         */
        readonly lifetime?: Lifetime.Owner;
        /**
         * Additional advertisement data.
         */
        readonly aad?: Bytes;
        /**
         * Advertisement timeout.
         */
        readonly timeout: Duration;
        /**
         * Transmission interval for first 30 seconds.
         *
         * Per core spec 5.4.2.5.3 should be 20-60ms.
         */
        readonly earlyInterval: Duration;
        /**
         * Transmission interval after first 30 seconds but before 15 minutes.
         *
         * Per core spec 5.4.2.5.3 should be 150-1285ms.
         */
        readonly lateInterval: Duration;
        /**
         * Transmission interval after 15 minutes.
         *
         * Per core spec 5.4.2.5.3 should be ~1285ms.
         */
        readonly extendedInterval: Duration;
    }
    interface Options extends Partial<Configuration> {
    }
    function Configuration(options?: Options): {
        lifetime?: Lifetime.Owner;
        aad?: Bytes;
        timeout: Duration;
        earlyInterval: Duration;
        lateInterval: Duration;
        extendedInterval: Duration;
    };
    /**
     * Data model for BLE advertiser configuration.
     */
    const OptionsSchema: DatatypeModel;
}
//# sourceMappingURL=BleAdvertiser.d.ts.map