import { Base, Type } from "./type";
import { IDataSourceVirtualDataProvider } from "./IDataSourceVirtualDataProvider";
import { IDataSourcePage } from "./IDataSourcePage";
import { IDataSourceSchema } from "./IDataSourceSchema";
import { IDataSourceExecutionContext } from "./IDataSourceExecutionContext";
import { IDataSourceDataProviderUpdateNotifier } from "./IDataSourceDataProviderUpdateNotifier";
import { SortDescriptionCollection } from "./SortDescriptionCollection";
import { SummaryDescriptionCollection } from "./SummaryDescriptionCollection";
import { FilterExpressionCollection } from "./FilterExpressionCollection";
import { DataSourceSummaryScope } from "./DataSourceSummaryScope";
import { DataSourcePageRequestPriority } from "./DataSourcePageRequestPriority";
import { AsyncVirtualDataSourceProviderWorker } from "./AsyncVirtualDataSourceProviderWorker";
import { AsyncVirtualDataSourceDataProviderWorkerSettings } from "./AsyncVirtualDataSourceDataProviderWorkerSettings";
import { DataSourceDataProviderSchemaChangedEventArgs } from "./DataSourceDataProviderSchemaChangedEventArgs";
import { DataSourceSchemaPropertyType } from "./DataSourceSchemaPropertyType";
import { TransactionState } from "./TransactionState";
/**
 * @hidden
 */
export declare abstract class BaseVirtualDataProvider extends Base implements IDataSourceVirtualDataProvider {
    static $t: Type;
    private d;
    private r;
    private f;
    private l;
    private k;
    private h;
    private m;
    private s;
    private j;
    constructor();
    private x;
    private u;
    private v;
    private w;
    addPageRequest(a: number, b: DataSourcePageRequestPriority): void;
    protected abstract e(): AsyncVirtualDataSourceProviderWorker;
    protected c(a: AsyncVirtualDataSourceDataProviderWorkerSettings): AsyncVirtualDataSourceDataProviderWorkerSettings;
    private ab;
    protected q(): boolean;
    removePageRequest(a: number): void;
    removeAllPageRequests(): void;
    close(): void;
    private g;
    get pageLoaded(): (page: IDataSourcePage, currentFullCount: number, actualPageSize: number) => void;
    set pageLoaded(a: (page: IDataSourcePage, currentFullCount: number, actualPageSize: number) => void);
    private ad;
    private t;
    get pageSizeRequested(): number;
    set pageSizeRequested(a: number);
    getItemValue(a: any, b: string): any;
    schemaChanged: (sender: any, args: DataSourceDataProviderSchemaChangedEventArgs) => void;
    get actualCount(): number;
    get actualSchema(): IDataSourceSchema;
    private i;
    get executionContext(): IDataSourceExecutionContext;
    set executionContext(a: IDataSourceExecutionContext);
    private _updateNotifier;
    get updateNotifier(): IDataSourceDataProviderUpdateNotifier;
    set updateNotifier(a: IDataSourceDataProviderUpdateNotifier);
    private o;
    get deferAutoRefresh(): boolean;
    set deferAutoRefresh(a: boolean);
    protected get_isSortingSupported(): boolean;
    get isSortingSupported(): boolean;
    protected get_isGroupingSupported(): boolean;
    get isGroupingSupported(): boolean;
    protected get_isFilteringSupported(): boolean;
    get isFilteringSupported(): boolean;
    get sortDescriptions(): SortDescriptionCollection;
    get groupDescriptions(): SortDescriptionCollection;
    get summaryDescriptions(): SummaryDescriptionCollection;
    get filterExpressions(): FilterExpressionCollection;
    private a;
    get propertiesRequested(): string[];
    set propertiesRequested(a: string[]);
    private b;
    get schemaIncludedProperties(): string[];
    set schemaIncludedProperties(a: string[]);
    private _summaryScope;
    get summaryScope(): DataSourceSummaryScope;
    set summaryScope(a: DataSourceSummaryScope);
    get notifyUsingSourceIndexes(): boolean;
    get isItemIndexLookupSupported(): boolean;
    get isKeyIndexLookupSupported(): boolean;
    notifyClearItems(): void;
    notifyInsertItem(a: number, b: any): void;
    notifyRemoveItem(a: number, b: any): void;
    notifySetItem(a: number, b: any, c: any): void;
    private p;
    ac(): void;
    private aa;
    private ag;
    protected ah(): void;
    protected y(): void;
    private n;
    queueAutoRefresh(): void;
    private z;
    private ae;
    protected af(): void;
    flushAutoRefresh(): void;
    refresh(): void;
    indexOfItem(a: any): number;
    indexOfKey(a: any[]): number;
    resolveSchemaPropertyType(a: string): DataSourceSchemaPropertyType;
    setItemValue(a: any, b: string, c: any): void;
    removeItem(a: any): void;
    addItem(a: any): void;
    createBatchRequest(a: TransactionState[]): void;
    private _batchCompleted;
    get batchCompleted(): (success: boolean, requiresRefresh: boolean, messages: string[]) => void;
    set batchCompleted(a: (success: boolean, requiresRefresh: boolean, messages: string[]) => void);
}
