import { SecretsManager } from 'aws-sdk';
export declare class CachedSecret {
    readonly value: string;
    readonly ttl: number;
    readonly expiresAt: number;
    constructor(value: string, ttl: number);
    hasExpired(): boolean;
}
export declare type SecretsManagerCacheOptions = Partial<SecretsManagerCacheConfig>;
interface SecretsManagerCacheConfig {
    /**
     * How many milliseconds to cache each secret for.
     * @default 300000
     */
    ttl: number;
    /** AWS SDK SecretsManager instance */
    secretsManager: SecretsManager;
}
export declare class SecretsManagerCache {
    config: SecretsManagerCacheConfig;
    private cache;
    constructor(options?: SecretsManagerCacheOptions);
    /**
     * Fetches a secret from SecretsManager and caches it as long as the given
     * `ttl`.
     */
    getSecret(secretName: string, isJSON?: boolean): Promise<string | undefined>;
}
export {};
