import { DocumentClient } from 'aws-sdk/clients/dynamodb';
import { DeviceType } from './deviceTypes.d';
export declare class DeviceDb {
    private readonly deviceTableName;
    private readonly modelSerialGsi;
    private readonly dynamodbClient;
    private readonly accessTokenGsi;
    deviceUuidKeyCondition: string;
    constructor(deviceTableName: string, modelSerialGsi: string, dynamodbClient: DocumentClient, accessTokenGsi: string);
    getDeviceByModelSerial: (model: string, serial: string) => Promise<DocumentClient.QueryOutput>;
    saveDeviceUuid: (model: string, serial: string, id: string) => Promise<DocumentClient.PutItemOutput>;
    getDeviceByUuid: (id: string) => Promise<DocumentClient.QueryOutput>;
    getDeviceRecordByType: (id: string, type: DeviceType) => Promise<DocumentClient.QueryOutput>;
    findDeviceByTokens: (deviceUuid: string, accessToken: string, refreshToken?: string | undefined, idToken?: string | undefined) => Promise<DocumentClient.QueryOutput>;
    updateDeviceRecord: (deviceUuid: string, type: DeviceType, values: {
        [key: string]: any;
    }) => Promise<import("aws-sdk/lib/request").PromiseResult<DocumentClient.UpdateItemOutput, import("aws-sdk").AWSError>>;
    findDeviceByPin: (pin: string, deviceUuid: string) => Promise<DocumentClient.QueryOutput>;
    createModelSerialKey: (model: string, serial: string) => string;
    findEntityUuidByAccessToken: (token: string) => Promise<DocumentClient.QueryOutput>;
}
