/**
 * @license
 * Copyright 2026 Matter.js Authors
 * SPDX-License-Identifier: Apache-2.0
 */
import { Behavior } from "#behavior/Behavior.js";
import { SharedEnvironmentServices } from "@matter/general";
import { DclCertificateService, DclConfig, DclOtaUpdateService, DclVendorInfoService } from "@matter/protocol";
/**
 * DCL (Distributed Compliance Ledger) configuration behavior.
 *
 * This behavior provides centralized configuration for DCL-related services.
 * Configuration can be set via:
 * - Environment variables (MATTER_DCL_PRODUCTIONURL, MATTER_DCL_TESTURL, etc.)
 * - Configuration file ({ "dcl": { "productionUrl": "..." } })
 * - Programmatically when building the node
 *
 * Environment variables:
 * - MATTER_DCL_PRODUCTIONURL - Production DCL API endpoint
 * - MATTER_DCL_TESTURL - Test DCL API endpoint
 * - MATTER_DCL_FETCHTESTCERTIFICATES - Enable test certificate fetching (true/false)
 * - MATTER_DCL_FETCHGITHUBCERTIFICATES - Enable GitHub dev cert fetching (true/false)
 *
 * @example Programmatic configuration:
 * ```typescript
 * const node = await ServerNode.create({
 *   behaviors: {
 *     dcl: {
 *       productionUrl: "https://custom.dcl.url",
 *       fetchTestCertificates: true,
 *     }
 *   }
 * });
 * ```
 */
export declare class DclBehavior extends Behavior {
    #private;
    static readonly id = "dcl";
    readonly state: DclBehavior.State;
    internal: DclBehavior.Internal;
    /** Get DclConfig for production DCL based on the current state. */
    get productionConfig(): DclConfig;
    /** Get DclConfig for test DCL based on the current state. */
    get testConfig(): DclConfig;
    /**
     * Get DclConfig based on a production flag.
     * @param isProduction - true for production, false for test
     */
    configForProduction(isProduction: boolean): DclConfig;
    /**
     * Get or create the DclCertificateService with the current configuration.
     * NOTE: The service might not be fully initialized, so use await service.construction to ensure before using it!
     */
    get certificateService(): DclCertificateService;
    /**
     * Get or create the DclVendorInfoService with the current configuration.
     * NOTE: The service might not be fully initialized, so use await service.construction to ensure before using it!
     */
    get vendorInfoService(): DclVendorInfoService;
    /**
     * Get or create the DclOtaUpdateService with the current configuration.
     * NOTE: The service might not be fully initialized, so use await service.construction to ensure before using it!
     */
    get otaUpdateService(): DclOtaUpdateService;
    [Symbol.asyncDispose](): Promise<void>;
}
export declare namespace DclBehavior {
    class State {
        /**
         * Production DCL API endpoint URL.
         *
         * Swagger docs: https://zigbee-alliance.github.io/distributed-compliance-ledger/#/
         */
        productionUrl: string;
        /** Test/Development DCL API endpoint URL. */
        testUrl: string;
        /** Whether to fetch test certificates in addition to production ones. */
        fetchTestCertificates: boolean;
        /**
         * Whether to trust test (non-production) certificates as valid trust anchors during device
         * attestation. Independent of {@link fetchTestCertificates}. When unset, defaults to the value of
         * `fetchTestCertificates`.
         */
        acceptTestCertificates?: boolean;
        /** Whether to fetch development certificates from GitHub (only when fetchTestCertificates is true). */
        fetchGithubCertificates: boolean;
    }
    class Internal {
        services?: SharedEnvironmentServices;
        otaService?: DclOtaUpdateService;
        certificateService?: DclCertificateService;
        vendorInfoService?: DclVendorInfoService;
    }
}
//# sourceMappingURL=DclBehavior.d.ts.map