import { CreateTableOutput } 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'; import { BaseUserInfo, CompleteGettingStartedTaskPayload, UserInfo } from './types'; import { USER_INFO_SORT_KEY } from './model'; export interface UserDatasource { createTable: () => Promise>; getUserInfo(userId: string): Promise; completeGettingStartedTask(params: CompleteGettingStartedTaskPayload): Promise; insertUserInfoRow(Item: UserInfoDynamoRow): Promise; } export declare class DynamoUserDatasource implements UserDatasource { private dynamoClient; constructor(dynamoClient?: DynamoDBClient); createTable: () => Promise>; getUserInfo: (userId: string) => Promise>; completeGettingStartedTask: (params: CompleteGettingStartedTaskPayload) => Promise>; insertUserInfoRow: (Item: UserInfoDynamoRow) => Promise>; private userInfoFromDynamoRow; } interface UserInfoDynamoRow extends BaseUserInfo { hashKey: string; sortKey: typeof USER_INFO_SORT_KEY; } declare const dynamoUserDatasource: DynamoUserDatasource; export default dynamoUserDatasource;