import { Base, INotifyPropertyChanged, PropertyChangedEventArgs, Type } from "./type";
import { IDataSourceLocalDataProvider } from "./IDataSourceLocalDataProvider";
import { IDataSourceDataProvider } from "./IDataSourceDataProvider";
import { IDataSource } from "./IDataSource";
import { IDataSourceSchema } from "./IDataSourceSchema";
import { IDataSourceExecutionContext } from "./IDataSourceExecutionContext";
import { IDataSourceDataProviderUpdateNotifier } from "./IDataSourceDataProviderUpdateNotifier";
import { SortDescriptionCollection } from "./SortDescriptionCollection";
import { SummaryDescriptionCollection } from "./SummaryDescriptionCollection";
import { DataSourceSummaryScope } from "./DataSourceSummaryScope";
import { FilterExpressionCollection } from "./FilterExpressionCollection";
import { DataSourceDataProviderSchemaChangedEventArgs } from "./DataSourceDataProviderSchemaChangedEventArgs";
import { DataSourceSchemaPropertyType } from "./DataSourceSchemaPropertyType";
import { IDataSourceUpdateNotifier } from "./IDataSourceUpdateNotifier";
/**
 * @hidden
 */
export declare class AggregatedDataProvider extends Base implements IDataSourceLocalDataProvider, INotifyPropertyChanged {
    static $t: Type;
    constructor();
    clone(): IDataSourceDataProvider;
    private ab;
    private g;
    private c;
    get targetDataSource(): IDataSource;
    set targetDataSource(a: IDataSource);
    private r;
    get schemaHints(): string;
    set schemaHints(a: string);
    private j;
    get includeParentSummary(): boolean;
    set includeParentSummary(a: boolean);
    get actualSchema(): IDataSourceSchema;
    get executionContext(): IDataSourceExecutionContext;
    set executionContext(a: IDataSourceExecutionContext);
    get updateNotifier(): IDataSourceDataProviderUpdateNotifier;
    set updateNotifier(a: IDataSourceDataProviderUpdateNotifier);
    private q;
    get dataSource(): any;
    set dataSource(a: any);
    private i;
    get deferAutoRefresh(): boolean;
    set deferAutoRefresh(a: boolean);
    get isSortingSupported(): boolean;
    get isGroupingSupported(): boolean;
    get isFilteringSupported(): boolean;
    get sortDescriptions(): SortDescriptionCollection;
    get groupDescriptions(): SortDescriptionCollection;
    get summaryDescriptions(): SummaryDescriptionCollection;
    get summaryScope(): DataSourceSummaryScope;
    set summaryScope(a: DataSourceSummaryScope);
    get filterExpressions(): FilterExpressionCollection;
    get propertiesRequested(): string[];
    set propertiesRequested(a: string[]);
    get schemaIncludedProperties(): string[];
    set schemaIncludedProperties(a: string[]);
    get notifyUsingSourceIndexes(): boolean;
    get isItemIndexLookupSupported(): boolean;
    get isKeyIndexLookupSupported(): boolean;
    get actualCount(): number;
    schemaChanged: (sender: any, args: DataSourceDataProviderSchemaChangedEventArgs) => void;
    propertyChanged: (sender: any, e: PropertyChangedEventArgs) => void;
    protected ai(a: string, b: any, c: any): void;
    protected ao(a: string, b: any, c: any): void;
    private ah;
    addItem(a: any): void;
    h: boolean;
    private k;
    queueAutoRefresh(): void;
    ae(): void;
    ap(): void;
    protected aq(): void;
    private o;
    private t;
    private d;
    private e;
    flushAutoRefresh(): void;
    refresh(): void;
    getItemAtIndex(a: number): any;
    getItemValue(a: any, b: string): any;
    indexOfItem(a: any): number;
    indexOfKey(a: any[]): number;
    removeItem(a: any): void;
    resolveSchemaPropertyType(a: string): DataSourceSchemaPropertyType;
    setItemValue(a: any, b: string, c: any): void;
    notifyClearItems(): void;
    notifyInsertItem(a: number, b: any): void;
    notifyRemoveItem(a: number, b: any): void;
    notifySetItem(a: number, b: any, c: any): void;
    private p;
    private a;
    private aa;
    private ag;
    private af;
    private ad;
    private ac;
    private n;
    private b;
    private z;
    private l;
    aj(): void;
    ak(a: number, b: any): void;
    al(a: number, b: any): void;
    am(a: number, b: any, c: any): void;
    an(a: number, b: number): void;
}
/**
 * @hidden
 */
export declare class AggregatedDataProviderTargetDataSourceNotifier extends Base implements IDataSourceUpdateNotifier {
    static $t: Type;
    private a;
    private b;
    get c(): IDataSourceUpdateNotifier;
    constructor(a: AggregatedDataProvider, b: IDataSourceUpdateNotifier);
    notifyClearItems(): void;
    notifyInsertItem(a: number, b: any): void;
    notifyRemoveItem(a: number, b: any): void;
    notifySetItem(a: number, b: any, c: any): void;
    rangeActualized(a: number, b: number): void;
}
