import type { ScanCommandInput, ScanCommandOutput } from '@aws-sdk/lib-dynamodb'; import type { EntityPaths } from '../../../entity/actions/parsePaths/index.js'; import type { FormattedItem } from '../../../entity/index.js'; import type { Entity } from '../../../entity/index.js'; import type { EntityAttrObjectOptions, EntityAttrOptionValue } from '../../../entity/utils/index.js'; import type { CountSelectOption } from '../../../options/select.js'; import { $sentArgs } from '../../../table/constants.js'; import { TableAction } from '../../../table/index.js'; import type { Table, TableSendableAction } from '../../../table/table.js'; import type { DocumentClientOptions } from '../../../types/documentClientOptions.js'; import type { Merge } from '../../../types/merge.js'; import { $options } from './constants.js'; import type { ScanOptions } from './options.js'; type ReturnedItems> = OPTIONS['select'] extends CountSelectOption ? undefined : (Entity[] extends ENTITIES ? FormattedItem : ENTITIES[number] extends infer ENTITY ? ENTITY extends Entity ? [ENTITY, OPTIONS] extends [ { entityAttribute: true | EntityAttrObjectOptions; }, { showEntityAttr: true; } ] ? Merge> : undefined; }>, { [KEY in EntityAttrOptionValue]: ENTITY['entityName']; }> : FormattedItem> : undefined; }> : never : never)[]; export type ScanResponse
> = Merge, { Items?: ReturnedItems; $metadata?: ScanCommandOutput['$metadata']; }>; export declare class IScanCommand
= ScanOptions> extends TableAction implements TableSendableAction
{ static actionName: "scan"; [$options]: OPTIONS; constructor(table: TABLE, entities?: ENTITIES, options?: OPTIONS); [$sentArgs](): [Entity[], ScanOptions]; params(): ScanCommandInput; send(documentClientOptions?: DocumentClientOptions): Promise>; } export declare class ScanCommand
= ScanOptions> extends IScanCommand { constructor(table: TABLE, entities?: ENTITIES, options?: OPTIONS); entities(...nextEntities: NEXT_ENTITIES): ScanCommand>; options>(nextOptions: NEXT_OPTIONS | ((prevOptions: OPTIONS) => NEXT_OPTIONS)): ScanCommand; } export {};