import { CoreDate, CoreId } from "@nmshd/core-types"; import { CryptoExchangeKeypair, CryptoExchangePrivateKey, CryptoExchangePublicKey, CryptoRelationshipRequestSecrets, CryptoRelationshipSecrets, CryptoSecretKey, CryptoSignatureKeypair, CryptoSignaturePrivateKey } from "@nmshd/crypto"; import { ControllerName, TransportController } from "../../core/TransportController"; import { AccountController } from "../accounts/AccountController"; import { SecretContainerCipher } from "./data/SecretContainerCipher"; import { SecretContainerPlain } from "./data/SecretContainerPlain"; export declare enum SecretBaseKeyType { Random = "random", Password = "password", External = "external" } /** * The SecretController which acts as a single touchpoint to access any secret within the Runtime. * Each access can be audited. */ export declare class SecretController extends TransportController { /** * Context of the secret derivation function. Doesn't have to be secret. * Must be 8 characters long. */ private static readonly secretContext; static readonly secretNonceKey: string; private nonce; private baseKey?; private secrets; constructor(parent: AccountController, name?: ControllerName); init(): Promise; storeSecret(secret: CryptoRelationshipRequestSecrets | CryptoRelationshipSecrets | CryptoExchangeKeypair | CryptoExchangePrivateKey | CryptoSignatureKeypair | CryptoSignaturePrivateKey | CryptoSecretKey, name: string, description?: string, validTo?: CoreDate): Promise; loadSecretsByName(name: string): Promise; loadActiveSecretByName(name: string): Promise; private getActiveSecretContainerByName; succeedSecretWithName(secret: CryptoRelationshipRequestSecrets | CryptoRelationshipSecrets | CryptoExchangeKeypair | CryptoExchangePrivateKey | CryptoSignatureKeypair | CryptoSignaturePrivateKey | CryptoSecretKey, name: string, description?: string, validTo?: CoreDate): Promise; private decryptSecret; loadSecretById(id: CoreId): Promise; deleteSecretById(id: CoreId): Promise; createExchangeKey(name?: string, description?: string, validTo?: CoreDate): Promise<[CryptoExchangePublicKey, SecretContainerCipher]>; private getBaseKey; private increaseNonce; } //# sourceMappingURL=SecretController.d.ts.map