import { PartitionKey } from "./keys"; import { Model } from "./Model"; import { Table } from "./Table"; import { ExtractFields } from "./types"; type StringKey = keyof ExtractFields & string; export declare class GSI> { private table; readonly name: string; private models; readonly partitionKeyName: StringKey; readonly sortKeyName: StringKey; private modelTags; constructor(table: Table, name: string, models: T[], partitionKeyName: StringKey, sortKeyName: StringKey); key(partitionKey: string): PartitionKey>; } export declare class GSIBuilder { private table; private name; constructor(table: Table, name: string); models>(models: T[]): GSIKeyBuilder; } declare class GSIKeyBuilder> { private table; private name; private models; private partitionKeyName?; constructor(table: Table, name: string, models: T[]); partitionKey(partitionKeyName: PK | SK | StringKey): this; sortKey(sortKeyName: PK | SK | StringKey): GSI; } export {}; //# sourceMappingURL=GSI.d.ts.map