import { Item } from './DocumentClient'; import { GetQuery, PutQuery, UpdateQuery } from './queries'; import DeleteQuery from './queries/DeleteQuery'; import TableIndex, { TableIndexOptions, TableKey, TableKeyArgs } from './TableIndex'; export type TableOptions = Omit, 'indexName'>; export default class Table extends TableIndex { constructor(opts: TableOptions & ([S] extends [never] ? {} : { sortKey: S; })); index

, H extends keyof P>(name: string, primaryKey: H): TableIndex; index

, H extends keyof P, S extends keyof P>(name: string, primaryKey: H, sortKey: S): TableIndex; put(item: T): PutQuery; get(...args: TableKeyArgs): GetQuery>; update(...args: TableKeyArgs): UpdateQuery>; delete(...args: TableKeyArgs): DeleteQuery>; }