import { DynamoDBDocument } from "@aws-sdk/lib-dynamodb";
interface Statistic {
    topic: string;
    period: string;
    count: number;
    time_partition: number;
}
interface TimePartition {
    name: string;
    format: string;
    interval: number;
}
interface TimeSeriesStatisticsManagerOptions {
    table?: string;
    client?: DynamoDBDocument;
    timePartitions?: TimePartition[];
}
export declare class TimeSeriesStatisticsManager {
    private client;
    private table;
    private state;
    private onReadyPromises;
    private timePartitions;
    constructor(options: TimeSeriesStatisticsManagerOptions);
    onReady(): Promise<void>;
    private resolveReadyPromises;
    private rejectReadyPromises;
    waitUntilTableExists(timeout?: number): Promise<void>;
    createTableIfNotExists(): Promise<void>;
    private createTopicPeriod;
    private getTimePartition;
    private getTimePartitionValue;
    addStatistic(topic: string, timestamp: number, amount?: number): Promise<void>;
    getStatisticsPeriod(topic: string, period: string, startTime: number, endTime: number): Promise<Statistic[]>;
    getStatistics(topic: string, startTime: number, endTime: number): Promise<Statistic[]>;
}
export {};
