import { AwsKmsAccount } from "./AwsKmsAccount.js";
import { AwsKmsKeyId } from "./AwsKmsKeyId.js";
import { AwsKmsMetadata } from "./AwsKmsMetadata.js";
import { KMSClient } from "@aws-sdk/client-kms";
import { type AccountDeletion, type AccountGeneration, type AccountMetadata, type AccountRetrieval, type MutableKeyStore } from "@planetarium/account";
export interface AwsKmsKeyStoreOptions {
    listWindow: number;
    scopingTags: Record<string, string>;
}
export declare class AwsKmsKeyStore implements MutableKeyStore<AwsKmsKeyId, AwsKmsAccount, AwsKmsMetadata> {
    #private;
    constructor(client: KMSClient, options?: Partial<AwsKmsKeyStoreOptions>);
    list(): AsyncIterable<AccountMetadata<AwsKmsKeyId, AwsKmsMetadata>>;
    get(keyId: AwsKmsKeyId): Promise<AccountRetrieval<AwsKmsKeyId, AwsKmsAccount, AwsKmsMetadata>>;
    generate(metadata?: AwsKmsMetadata): Promise<AccountGeneration<AwsKmsKeyId, AwsKmsAccount>>;
    delete(keyId: AwsKmsKeyId): Promise<AccountDeletion<AwsKmsKeyId>>;
}
