import { Column } from './Column';
import { Dialog } from './Dialog';
import { LargeProperty } from './LargeProperty';
import { Menu } from './Menu';
import { QueryMarkerOption, QueryScroller } from './QueryScroller';
import { ReadLargePropertyParameters } from './ReadLargePropertyParameters';
import { RecordSet } from './RecordSet';
import { Redirection } from './Redirection';
import { QueryDirection } from './types';
import { PositionalQueryAbilityType } from './types';
/**
 * Dialog Subtype that represents a 'Query Dialog'.
 * A 'Query' represents and is backed by a list of Records and a single Record definition.
 * See {@link Record} and {@link RecordDef}.
 */
export declare class QueryDialog extends Dialog {
    positionalQueryAbility: PositionalQueryAbilityType;
    supportsColumnStatistics: boolean;
    supportsPositionalQueries: boolean;
    private _scroller;
    readonly defaultActionId: string;
    initScroller(pageSize: number, firstRecordId?: string, markerOptions?: QueryMarkerOption[]): void;
    isBinary(column: Column): boolean;
    performMenuActionWithId(actionId: string, targets: string[]): Promise<Redirection>;
    /**
     * Get a redirection to the search dialog for this query dialog
     */
    openSearch(): Promise<Redirection>;
    /**
     * Perform this action associated with the given Menu on this dialog.
     * The targets array is expected to be an array of object ids.
     * @param {Menu} menu
     * @param {Array<string>} targets
     * @returns {Promise<{actionId: string} | Redirection>}
     */
    performMenuAction(menu: Menu, targets: string[]): Promise<Redirection>;
    /**
     * Perform a query
     *
     * @param {number} maxRows
     * @param {QueryDirection} direction
     * @param {string} fromRecordId
     * @returns {Promise<RecordSet>}
     */
    query(maxRows: number, direction: QueryDirection, fromRecordId: string): Promise<RecordSet>;
    /**
     * Get the associated QueryScroller
     * @returns {QueryScroller}
     */
    readonly scroller: QueryScroller;
    protected getProperty(params: ReadLargePropertyParameters, propertyName: string): Promise<LargeProperty>;
    /**
     * Creates a new QueryScroller with default buffer size of 50
     * @returns {QueryScroller}
     */
    private defaultScroller;
}
