/**
 * @license
 * Copyright 2022-2026 Matter.js Authors
 * SPDX-License-Identifier: Apache-2.0
 */
import { DclConfig } from "#dcl/DclConfig.js";
import { DclApiErrorResponse, DclPkiRootCertificateSubjectReference, DclVendorInfo } from "#dcl/DclRestApiTypes.js";
import { Duration, MatterError } from "@matter/general";
/** Base class for all DCL-related errors */
export declare class MatterDclError extends MatterError {
}
/** Error thrown when fetching data from DCL fails */
export declare class MatterDclResponseError extends MatterDclError {
    readonly response: DclApiErrorResponse;
    constructor(path: string, error: DclApiErrorResponse, options?: ErrorOptions);
}
/** A client class to use "fetch" to get REST data from DCL (Distributed Compliance Ledger) */
export declare class DclClient {
    #private;
    constructor(config?: DclConfig);
    fetchRootCertificateList(options?: DclClient.Options): Promise<DclPkiRootCertificateSubjectReference[]>;
    fetchRootCertificateBySubject(subject: DclPkiRootCertificateSubjectReference, options?: DclClient.Options): Promise<import("@matter/types").ProductAttestationDclSchema[]>;
    fetchModelByVidPid(vid: number, pid: number, options?: DclClient.Options): Promise<import("@matter/types").DeviceModelDclSchema>;
    fetchModelVersionsByVidPid(vid: number, pid: number, options?: DclClient.Options): Promise<number[]>;
    fetchModelVersionByVidPidSoftwareVersion(vid: number, pid: number, softwareVersion: number, options?: DclClient.Options): Promise<import("@matter/types").DeviceSoftwareVersionModelDclSchema>;
    /**
     * Fetch all vendor information from DCL
     */
    fetchAllVendors(options?: DclClient.Options): Promise<DclVendorInfo[]>;
}
export declare namespace DclClient {
    interface Options {
        /** Timeout for DCL requests. Default is 5s. */
        timeout?: Duration;
    }
}
//# sourceMappingURL=DclClient.d.ts.map