import ExpressionAttributeNames from './ExpressionAttributeNames'; export type ProjectionFields = { [P in keyof T]?: [T[P]] extends [object] ? ProjectionFields | true | false | 1 | 0 : true | false | 1 | 0; }; type ProjectionFieldsKeys> = Exclude<{ [K in keyof T]: [P[K]] extends [true | 1 | object] ? K : never; }[keyof T], undefined>; type ProjectionFieldsMaybeKeys> = Exclude<{ [K in keyof T]: [P[K]] extends [boolean] ? [P[K]] extends [false] ? never : K : never; }[keyof T], undefined>; export type ItemProjection> = { [K in ProjectionFieldsKeys]: [P[K]] extends [object] ? ItemProjection : T[K]; } & { [K in ProjectionFieldsMaybeKeys]?: T[K]; }; export default class ProjectionExpression { private names; private paths; constructor(names: ExpressionAttributeNames, init?: string); add

>>(fields: P): this; serialize(): string | undefined; } export {};