import { QueryInput, QueryOutput } from 'aws-sdk/clients/dynamodb';
import { Observable } from 'rxjs';
import { ModelConstructor } from '../../../model';
import { DynamoRx } from '../../dynamo-rx';
import { RequestSortKeyConditionFunction } from '../../expression/type';
import { Request } from '../request.model';
import { QueryResponse } from './query.response';
export declare class QueryRequest<T> extends Request<T, QueryRequest<T>, QueryInput, QueryResponse<T>> {
    private readonly 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 {RequestConditionFunction<T>}
     */
    whereSortKey(): RequestSortKeyConditionFunction<QueryRequest<T>>;
    ascending(): QueryRequest<T>;
    descending(): QueryRequest<T>;
    execNoMap(): Observable<QueryOutput>;
    execFullResponse(): Observable<QueryResponse<T>>;
    exec(): Observable<T[]>;
    execSingle(): Observable<T | null>;
    execCount(): Observable<number>;
    private mapFromDb;
}
