/** * @license * Copyright 2022-2026 Matter.js Authors * SPDX-License-Identifier: Apache-2.0 */ import { ValueSupervisor } from "#behavior/supervision/ValueSupervisor.js"; import { Endpoint } from "#endpoint/Endpoint.js"; import { MaybePromise } from "@matter/general"; import { DeviceCertification, Val } from "@matter/protocol"; import { FabricIndex } from "@matter/types"; import { OperationalCredentials } from "@matter/types/clusters/operational-credentials"; declare const OperationalCredentialsBase: import("../../index.js").ClusterBehavior.Type {}, "operationalCredentials"> & { readonly id: "operationalCredentials"; }; /** * This is the default server implementation of OperationalCredentialsBehavior. * * TODO - currently "source of truth" for fabric data is persisted by FabricManager. If we remove some legacy code * paths we can move source of truth to here. Right now we just sync fabrics with FabricManager. This sync is only as * comprehensive as required by current use cases. If fabrics are mutated directly on FabricManager then this code will * require update. */ export declare class OperationalCredentialsServer extends OperationalCredentialsBase { #private; internal: OperationalCredentialsServer.Internal; readonly state: OperationalCredentialsServer.State; initialize(): MaybePromise; attestationRequest({ attestationNonce }: OperationalCredentials.AttestationRequest): Promise<{ attestationElements: AllowSharedBufferSource; attestationSignature: AllowSharedBufferSource; }>; csrRequest({ csrNonce, isForUpdateNoc }: OperationalCredentials.CsrRequest): Promise<{ nocsrElements: AllowSharedBufferSource; attestationSignature: AllowSharedBufferSource; }>; certificateChainRequest({ certificateType }: OperationalCredentials.CertificateChainRequest): Promise<{ certificate: AllowSharedBufferSource; }>; addNoc({ nocValue, icacValue, ipkValue, caseAdminSubject, adminVendorId, }: OperationalCredentials.AddNocRequest): Promise; updateNoc({ nocValue, icacValue }: OperationalCredentials.UpdateNocRequest): Promise; updateFabricLabel({ label }: OperationalCredentials.UpdateFabricLabelRequest): Promise<{ statusCode: OperationalCredentials.NodeOperationalCertStatus; debugText: string; fabricIndex?: undefined; } | { debugText?: undefined; statusCode: OperationalCredentials.NodeOperationalCertStatus; fabricIndex: FabricIndex; }>; removeFabric({ fabricIndex }: OperationalCredentials.RemoveFabricRequest): Promise<{ fabricIndex?: undefined; statusCode: OperationalCredentials.NodeOperationalCertStatus; debugText: string; } | { debugText?: undefined; statusCode: OperationalCredentials.NodeOperationalCertStatus; fabricIndex: FabricIndex; }>; addTrustedRootCertificate({ rootCaCertificate, }: OperationalCredentials.AddTrustedRootCertificateRequest): Promise; signVidVerificationRequest({ fabricIndex, clientChallenge, }: OperationalCredentials.SignVidVerificationRequest): Promise; setVidVerificationStatement({ vendorId, vidVerificationStatement, vvsc, }: OperationalCredentials.SetVidVerificationStatementRequest): Promise; [Symbol.asyncDispose](): Promise; getCertification(): Promise; } export declare namespace OperationalCredentialsServer { class Internal { certification?: DeviceCertification; } class State extends OperationalCredentialsBase.State { /** * Device certification information. * * Device certification provides a cryptographic certificate that asserts the official status of a device. * Production consumer-facing devices are certified by the CSA. * * Development devices and those intended for personal use may use a development certificate. This is the * default if you do not provide an official certification in {@link ServerOptions.certification}. */ certification?: DeviceCertification.Definition; [Val.properties](_endpoint: Endpoint, session: ValueSupervisor.Session): { readonly currentFabricIndex: FabricIndex; }; } } export {}; //# sourceMappingURL=OperationalCredentialsServer.d.ts.map