import { Base, Type } from "igniteui-webcomponents-core";
import { IDataSourceVirtualDataProvider } from "igniteui-webcomponents-core";
import { IDataSourcePage } from "igniteui-webcomponents-core";
import { IDataSourceSchema } from "igniteui-webcomponents-core";
import { IDataSourceExecutionContext } from "igniteui-webcomponents-core";
import { IDataSourceDataProviderUpdateNotifier } from "igniteui-webcomponents-core";
import { SortDescriptionCollection } from "igniteui-webcomponents-core";
import { FilterExpressionCollection } from "igniteui-webcomponents-core";
import { DataSourcePageRequestPriority } from "igniteui-webcomponents-core";
import { DataSourceDataProviderSchemaChangedEventArgs } from "igniteui-webcomponents-core";
import { DataSourceSchemaPropertyType } from "igniteui-webcomponents-core";
import { SummaryDescriptionCollection } from "igniteui-webcomponents-core";
import { DataSourceSummaryScope } from "igniteui-webcomponents-core";
import { TransactionState } from "igniteui-webcomponents-core";
export declare class ODataVirtualDataSourceDataProvider extends Base implements IDataSourceVirtualDataProvider {
    static $t: Type;
    private _worker;
    private _requests;
    private _callback;
    constructor();
    private filterExpressions_CollectionChanged;
    private sortDescriptions_CollectionChanged;
    private groupDescriptions_CollectionChanged;
    private summaryDescriptions_CollectionChanged;
    addPageRequest(pageIndex: number, priority: DataSourcePageRequestPriority): void;
    private createWorker;
    private valid;
    private getWorkerSettings;
    removePageRequest(pageIndex: number): void;
    removeAllPageRequests(): void;
    close(): void;
    private _pageLoaded;
    get pageLoaded(): (page: IDataSourcePage, currentFullCount: number, actualPageSize: number) => void;
    set pageLoaded(value: (page: IDataSourcePage, currentFullCount: number, actualPageSize: number) => void);
    private raisePageLoaded;
    private killWorker;
    private _pageSizeRequested;
    get pageSizeRequested(): number;
    set pageSizeRequested(value: number);
    private _baseUri;
    get baseUri(): string;
    set baseUri(value: string);
    private _entitySet;
    get entitySet(): string;
    set entitySet(value: string);
    private _timeoutMilliseconds;
    get timeoutMilliseconds(): number;
    set timeoutMilliseconds(value: number);
    getItemValue(item: any, valueName: string): any;
    setItemValue(item: any, valueName: string, value: any): void;
    removeItem(item: any): void;
    addItem(item: any): void;
    schemaChanged: (sender: any, args: DataSourceDataProviderSchemaChangedEventArgs) => void;
    private _currentFullCount;
    private _currentSchema;
    get actualCount(): number;
    get actualSchema(): IDataSourceSchema;
    private _executionContext;
    get executionContext(): IDataSourceExecutionContext;
    set executionContext(value: IDataSourceExecutionContext);
    private _updateNotifier;
    get updateNotifier(): IDataSourceDataProviderUpdateNotifier;
    set updateNotifier(value: IDataSourceDataProviderUpdateNotifier);
    private _deferAutoRefresh;
    get deferAutoRefresh(): boolean;
    set deferAutoRefresh(value: boolean);
    get isSortingSupported(): boolean;
    get isGroupingSupported(): boolean;
    get isFilteringSupported(): boolean;
    private _isAggregationSupported;
    get isAggregationSupported(): boolean;
    set isAggregationSupported(isSupported: boolean);
    private _sortDescriptions;
    get sortDescriptions(): SortDescriptionCollection;
    private _groupDescriptions;
    get groupDescriptions(): SortDescriptionCollection;
    private _propertiesRequested;
    get propertiesRequested(): string[];
    set propertiesRequested(value: string[]);
    private _schemaIncludedProperties;
    get schemaIncludedProperties(): string[];
    set schemaIncludedProperties(value: string[]);
    private _filterExpressions;
    get filterExpressions(): FilterExpressionCollection;
    private _summaryDescriptions;
    get summaryDescriptions(): SummaryDescriptionCollection;
    private _summaryScope;
    get summaryScope(): DataSourceSummaryScope;
    set summaryScope(value: DataSourceSummaryScope);
    private _enableJsonp;
    get enableJsonp(): boolean;
    set enableJsonp(isEnabled: boolean);
    get notifyUsingSourceIndexes(): boolean;
    get isItemIndexLookupSupported(): boolean;
    get isKeyIndexLookupSupported(): boolean;
    notifySetItem(index: number, oldItem: any, newItem: any): void;
    notifyClearItems(): void;
    notifyInsertItem(index: number, newItem: any): void;
    notifyRemoveItem(index: number, oldItem: any): void;
    _schemaFetchQueued: boolean;
    queueSchemaFetch(): void;
    doSchemaFetchInternal(): void;
    schemaFetchInternal(): void;
    protected schemaFetchInternalOverride(): void;
    private addSchemaRequest;
    _autoRefreshQueued: boolean;
    queueAutoRefresh(): void;
    doRefreshInternal(): void;
    refreshInternal(): void;
    protected refreshInternalOverride(): void;
    flushAutoRefresh(): void;
    refresh(): void;
    indexOfItem(item: any): number;
    indexOfKey(key: any[]): number;
    resolveSchemaPropertyType(propertyPath: string): DataSourceSchemaPropertyType;
    createBatchRequest(changes: TransactionState[]): void;
    private _batchCompleted;
    get batchCompleted(): (success: boolean, requiresRefresh: boolean) => void;
    set batchCompleted(value: (success: boolean, requiresRefresh: boolean) => void);
}
