import type { TableDescription } from 'aws-sdk/clients/dynamodb';
import type { CacheStoreContract } from '@ioc:Adonis/Addons/Cache';
import type { DynamoDBContract } from '@ioc:Adonis/Addons/DynamoDB';
import BaseStore from './BaseStore';
export default class DynamoDB extends BaseStore implements CacheStoreContract {
    private client;
    private tableName;
    private store;
    constructor(client: DynamoDBContract, tableName: string);
    /**
     * In DynamoDB, TTL is expressed in seconds.
     */
    calculateTTL(ttlInMilliseconds: number): number;
    get<T = any>(key: string): Promise<T | null>;
    many<T extends Record<string, any>>(keys: Array<string>): Promise<T>;
    has(key: string): Promise<boolean>;
    put<T = any>(key: string, value: T, ttl: number): Promise<boolean>;
    add<T = any>(key: string, value: T, ttl: number): Promise<boolean>;
    putMany(list: Record<string, unknown>, ttl: number): Promise<Array<boolean>>;
    increment(key: string, value: number): Promise<number | boolean>;
    decrement(key: string, value: number): Promise<number | boolean>;
    putManyForever(list: Record<string, unknown>): Promise<Array<boolean>>;
    forever<T = any>(key: string, value: T): Promise<boolean>;
    forget(key: string): Promise<boolean>;
    flush(): Promise<boolean>;
    createTable(tableName?: string): Promise<TableDescription | null>;
    private incrementOrDecrement;
}
