export interface Secret { getSecret(): Promise; } /** * A {@link Secret} implementation that stores the secret hard-coded in plain text. * * This is an insecure API and should only be used when safe, such as in a dev * environment. */ export declare class PlainTextSecret implements Secret { readonly value: T; constructor(value: T); getSecret(): Promise>; } export interface CachingConfig { /** * Whether caching is enabled. * * @default true */ enabled?: boolean; /** * Number of milliseconds to cache the secret value for. * * @default - no TTL, all values are cached indefinitely */ ttl?: number; } /** * A base implementation of a {@link Secret} that supports caching. */ export declare abstract class BaseCachingSecret implements Secret { #private; private readonly cachingConfig; constructor(cachingConfig?: CachingConfig); /** * Gets a fresh version of the secret from the remote store. */ protected abstract getFreshSecret(): Promise; getSecret(bustCache?: true): Promise; } /** * A {@link Secret} parsed from JSON. */ export declare class JsonSecret implements Secret { readonly secret: Secret; constructor(secret: Secret); getSecret(): Promise; } //# sourceMappingURL=secret.d.ts.map