import type { AsyncJsonFileLockOptions } from "../config-utils.mjs"; import type { TrialCredentialRecord } from "./trial-credential-record.mjs"; export type TrialCredentialSecureBackend = Readonly<{ load(): Promise; save(serialized: string): Promise; delete(): Promise; }>; export type TrialCredentialStoreOptions = Readonly<{ memoraxCodeHome?: string; env?: Record; platform?: NodeJS.Platform; backend?: TrialCredentialSecureBackend; runtime?: Record; lockOptions?: AsyncJsonFileLockOptions; provisionLockOptions?: AsyncJsonFileLockOptions; }>; export type TrialCredentialNamespaceOptions = Readonly<{ platform?: NodeJS.Platform; resolveHome?: (value: string) => string; }>; export type TrialCredentialStorePort = Readonly<{ load(): Promise; createIfAbsent( value: unknown, ): Promise>; complete( value: TrialCredentialRecord, metadata: Readonly<{ accountId: string; projectId: string; apiKey: string; }>, ): Promise; withProvisionLock( operation: () => T | Promise, options?: AsyncJsonFileLockOptions, ): Promise; }>; export function trialCredentialNamespace( memoraxCodeHome: string, options?: TrialCredentialNamespaceOptions, ): string; export function trialCredentialLockPath(memoraxCodeHome: string): string; export function trialCredentialProvisionLockPath(memoraxCodeHome: string): string; export function withTrialCredentialProvisionLock( operation: () => T | Promise, options?: TrialCredentialStoreOptions, ): Promise; export function createTrialCredentialStorePort( options?: TrialCredentialStoreOptions, ): TrialCredentialStorePort; export function loadTrialCredentialRecord( options?: TrialCredentialStoreOptions, ): Promise; export function createTrialCredentialRecordIfAbsent( value: unknown, options?: TrialCredentialStoreOptions, ): Promise>; export function completeTrialCredentialRecord( value: TrialCredentialRecord, metadata: Readonly<{ accountId: string; projectId: string; apiKey: string; }>, options?: TrialCredentialStoreOptions, ): Promise; export function clearTrialCredentialRecord( options?: TrialCredentialStoreOptions, ): Promise>;