/**
 * @license
 * Copyright 2025-2026 Open Home Foundation
 * SPDX-License-Identifier: Apache-2.0
 */
import { Bytes, Crypto, Environment, Timestamp } from "@matter/main";
import { VendorInfo, DclCertificateService, DclVendorInfoService } from "@matter/main/protocol";
import { Endpoint } from "@matter/node";
import { CameraControllerDevice } from "@matter/node/devices/camera-controller";
import { ConfigStorage } from "../server/ConfigStorage.js";
import { BorderRouterDiscovery } from "./BorderRouterDiscovery.js";
import { ControllerCommandHandler } from "./ControllerCommandHandler.js";
import { LegacyServerData } from "./LegacyDataInjector.js";
export declare function computeCompressedNodeId(crypto: Crypto, fabricId: number | bigint, caKey: Bytes): Promise<string>;
export interface MatterControllerOptions {
    enableTestNetDcl?: boolean;
    disableOtaProvider?: boolean;
    /** Disable bundled offline DCL seed data (PAA roots, CD signers, vendors). When true, only network DCL is used. */
    disableDclSeed?: boolean;
    /** Server ID for storage. Default is "server", but may be "server-<hex(fabricId)>-<hex(vendorId)>" for multi-fabric support */
    serverId?: string;
    /** Server version string (e.g., "0.2.10" or "0.2.10-alpha.0"). Used for BasicInformation cluster. */
    serverVersion?: string;
    /** BLE proxy mode: skip the `@matter/nodejs-ble` import; caller supplies the Ble implementation. */
    bleProxyEnabled?: boolean;
}
export declare class MatterController {
    #private;
    static create(environment: Environment, config: ConfigStorage, options: MatterControllerOptions, legacyData?: LegacyServerData): Promise<MatterController>;
    constructor(environment: Environment, config: ConfigStorage, options: MatterControllerOptions, serverId: string);
    protected initialize(vendorId?: number, fabricId?: number | bigint, legacyCommissionedDates?: Map<string, Timestamp>): Promise<void>;
    get commandHandler(): ControllerCommandHandler;
    get borderRouters(): BorderRouterDiscovery;
    get webRtcRequestor(): Endpoint<typeof CameraControllerDevice>;
    /**
     * Get the DCL vendor info service instance.
     * Lazily initializes the service if not already present.
     */
    vendorInfoService(): Promise<DclVendorInfoService>;
    /**
     * Get the DCL certificate service instance
     * Lazily initializes the service if not already present.
     */
    certificateService(): Promise<DclCertificateService>;
    /**
     * Get the DCL OTA update service instance
     * Lazily initializes the service if not already present.
     */
    otaUpdateService(): Promise<import("@matter/main/protocol").DclOtaUpdateService>;
    /**
     * Get vendor information by vendor ID.
     * Returns undefined if the vendor is not found.
     */
    getVendorInfo(vendorId: number): Promise<VendorInfo | undefined>;
    /**
     * Get all vendor information from the DCL service.
     */
    getAllVendors(): Promise<ReadonlyMap<number, VendorInfo>>;
    injectCommissionedDates(): Promise<void>;
    stop(): Promise<void>;
    /**
     * Store an OTA image file from a file path.
     * @param filePath - Path to the OTA file
     * @returns true if stored successfully
     */
    storeOtaImageFromFile(filePath: string): Promise<boolean>;
}
//# sourceMappingURL=MatterController.d.ts.map