/**
 * @module store-requests
 */
import * as DynamoDB from 'aws-sdk/clients/dynamodb';
import { Logger } from '../../../logger/logger';
import { ModelConstructor } from '../../../model/model-constructor';
import { DynamoDbWrapper } from '../../dynamo-db-wrapper';
import { SortKeyConditionFunction } from '../../expression/type/sort-key-condition-function';
import { ReadManyRequest } from '../read-many.request';
import { QueryResponse } from './query.response';
/**
 * Request class for the Query operation.
 */
export declare class QueryRequest<T> extends ReadManyRequest<T, DynamoDB.QueryInput, DynamoDB.QueryOutput, QueryResponse<T>, QueryRequest<T>> {
    protected readonly logger: Logger;
    constructor(dynamoDBWrapper: DynamoDbWrapper, modelClazz: ModelConstructor<T>);
    /**
     *
     */
    wherePartitionKey(partitionKeyValue: any): QueryRequest<T>;
    /**
     * used to define some condition for the sort key, use the secondary index to query based on a custom index
     */
    whereSortKey(): SortKeyConditionFunction<QueryRequest<T>>;
    ascending(): QueryRequest<T>;
    descending(): QueryRequest<T>;
    protected doRequest(params: DynamoDB.QueryInput): Promise<DynamoDB.QueryOutput>;
}
