import { type GetSecretValueCommand, type GetSecretValueCommandOutput } from '@aws-sdk/client-secrets-manager';
import { BaseSecretsAdapter, type ProcessedSecretDefinitions } from 'updating-secrets';
/**
 * Minimal subset of AWS's `SecretsManagerClient` from the
 * [`@aws-sdk/client-secrets-manager`](https://www.npmjs.com/package/@aws-sdk/client-secrets-manager)
 * package required for {@link AwsSecretsManagerAdapter}.
 *
 * For testing purposes use `MockAwsSecretsManagerClient` to create a mock instance of this.
 *
 * @category Internal
 */
export type NeededAwsSecretsManagerClient = {
    /**
     * Same as AWS's `SecretsManagerClient.send()` method but this only accepts the
     * `GetSecretValueCommand` command.
     */
    send(command: GetSecretValueCommand): Promise<GetSecretValueCommandOutput>;
};
/**
 * Loads secrets from AWS Secrets Manager. A `SecretsManagerClient` instance must be provided.
 *
 * @category Adapters
 */
export declare class AwsSecretsManagerAdapter extends BaseSecretsAdapter {
    protected readonly awsSecretsManager: Readonly<NeededAwsSecretsManagerClient>;
    constructor(awsSecretsManager: Readonly<NeededAwsSecretsManagerClient>);
    /** Loads secrets from the provided `SecretsManagerClient`. */
    loadSecrets(secrets: ProcessedSecretDefinitions): {
        [x: string]: Error | Promise<any>;
    };
    /** Load an entire individual secret from AWS. */
    loadSingleSecret(secretId: string): Promise<any>;
}
