import { GetItemCommandInput, QueryCommandInput } from "@aws-sdk/client-dynamodb";
import { NativeAttributeValue } from "@aws-sdk/util-dynamodb";
import type { RequestContext } from "../config/index.js";
/**
 * Fetches a single item from a DynamoDB table by its key.
 *
 * @template T The expected type of the unmarshalled item.
 * @param tableName The name of the DynamoDB table.
 * @param key The primary key of the item to fetch (use NativeAttributeValue format).
 * @param options Optional GetItemCommandInput options (e.g., ProjectionExpression).
 * @param context RequestContext containing AWS credentials.
 * @returns The requested item, unmarshalled to type T, or null if not found.
 */
export declare function getDynamoDBItem<T = Record<string, NativeAttributeValue>>(tableName: string, key: Record<string, NativeAttributeValue>, options: Partial<GetItemCommandInput> | undefined, context: RequestContext): Promise<T | null>;
/**
 * Queries a DynamoDB table or index.
 *
 * @template T The expected type of the unmarshalled items.
 * @param tableName The name of the DynamoDB table.
 * @param queryInput Query parameters (KeyConditionExpression, etc.).
 *                 Use ExpressionAttributeValues with NativeAttributeValue format for easier use.
 *                 Example: ExpressionAttributeValues: { ':val': 'someValue', ':num': 123 }
 * @param context RequestContext containing AWS credentials.
 * @returns An array of items matching the query, unmarshalled to type T[].
 */
export declare function queryDynamoDB<T = Record<string, NativeAttributeValue>>(tableName: string, queryInput: Omit<QueryCommandInput, "TableName" | "ExpressionAttributeValues"> & {
    ExpressionAttributeValues?: Record<string, NativeAttributeValue>;
}, context: RequestContext): Promise<T[]>;
//# sourceMappingURL=dynamodb.service.d.ts.map