import { CreateTableOutput, DeleteItemOutput } from 'aws-sdk/clients/dynamodb';
import { AWSError } from 'aws-sdk/lib/error';
import { PromiseResult } from 'aws-sdk/lib/request';
import { DynamoDBClient } from '../../shared/aws/dynamodb';
declare type MonitorConnection = {
    connectionId: string;
    monitorId: string;
};
export interface ConnectionDatasource {
    createConnection(monitorId: string): Promise<string>;
    deleteConnection(monitorId: string, connectionId: string): Promise<PromiseResult<DeleteItemOutput, AWSError>>;
    findConnectionsForMonitor(monitorId: string): Promise<MonitorConnection[]>;
}
export declare class DynamoConnectionDatasource implements ConnectionDatasource {
    private readonly dynamoClient;
    constructor(dynamoClient?: DynamoDBClient);
    createTable: () => Promise<PromiseResult<CreateTableOutput, AWSError>>;
    createConnection: (monitorId: string) => Promise<string>;
    deleteConnection: (monitorId: string, connectionId: string) => Promise<PromiseResult<import("aws-sdk/clients/dynamodb").DocumentClient.DeleteItemOutput, AWSError>>;
    findConnectionsForMonitor: (monitorId: string) => Promise<MonitorConnection[]>;
}
declare const dynamoConnectionDatasource: DynamoConnectionDatasource;
export default dynamoConnectionDatasource;
