import * as DynamoDB from 'aws-sdk/clients/dynamodb';
import { Observable } from 'rxjs';
import { Logger } from '../../../logger/logger';
import { ModelConstructor } from '../../../model';
import { DynamoRx } from '../../dynamo-rx';
import { SortKeyConditionFunction } from '../../expression/type';
import { ReadManyRequest } from '../read-many.request';
import { QueryResponse } from './query.response';
export declare class QueryRequest<T> extends ReadManyRequest<T, DynamoDB.QueryInput, DynamoDB.QueryOutput, QueryResponse<T>, QueryRequest<T>> {
    protected readonly logger: Logger;
    constructor(dynamoRx: DynamoRx, 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
     * @returns {SortKeyConditionFunction<QueryRequest<T>>}
     */
    whereSortKey(): SortKeyConditionFunction<QueryRequest<T>>;
    ascending(): QueryRequest<T>;
    descending(): QueryRequest<T>;
    protected doRequest(params: DynamoDB.QueryInput): Observable<DynamoDB.QueryOutput>;
}
