import { Base, INotifyPropertyChanged, PropertyChangedEventArgs, Type } from "./type";
import { IDataSourceLocalDataProvider } from "./IDataSourceLocalDataProvider";
import { IDataSourceDataProvider } from "./IDataSourceDataProvider";
import { IDataSource } from "./IDataSource";
import { FlatDataProviderJoinType } from "./FlatDataProviderJoinType";
import { FlatDataProviderJoinCollisionType } from "./FlatDataProviderJoinCollisionType";
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 FlatDataProvider extends Base implements IDataSourceLocalDataProvider, INotifyPropertyChanged {
    static $t: Type;
    constructor();
    clone(): IDataSourceDataProvider;
    private av;
    private az;
    private aw;
    private ay;
    private ap;
    private n;
    private k;
    get targetDataSource(): IDataSource;
    set targetDataSource(a: IDataSource);
    private j;
    get rightDataSource(): IDataSource;
    set rightDataSource(a: IDataSource);
    private p;
    get broadcastChangesToRightDataSource(): boolean;
    set broadcastChangesToRightDataSource(a: boolean);
    private z;
    get leftJoinProperty(): string;
    set leftJoinProperty(a: string);
    private aa;
    get rightJoinProperty(): string;
    set rightJoinProperty(a: string);
    private h;
    get joinType(): FlatDataProviderJoinType;
    set joinType(a: FlatDataProviderJoinType);
    private e;
    get joinCollisionType(): FlatDataProviderJoinCollisionType;
    set joinCollisionType(a: FlatDataProviderJoinCollisionType);
    private ab;
    get schemaHints(): string;
    set schemaHints(a: string);
    get actualSchema(): IDataSourceSchema;
    get executionContext(): IDataSourceExecutionContext;
    set executionContext(a: IDataSourceExecutionContext);
    get updateNotifier(): IDataSourceDataProviderUpdateNotifier;
    set updateNotifier(a: IDataSourceDataProviderUpdateNotifier);
    private w;
    get dataSource(): any;
    set dataSource(a: any);
    private q;
    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 ax(a: string, b: any, c: any): void;
    protected a5(a: string, b: any, c: any): void;
    private au;
    addItem(a: any): void;
    o: boolean;
    private a;
    private r;
    queueAutoRefresh(): void;
    ar(): void;
    a6(): void;
    protected a7(): void;
    private c;
    private f;
    private u;
    createDynamicItem(): any;
    setDynamicItemProperty(a: any, b: string, c: any): void;
    hasDynamicItemProperty(a: any, b: string): boolean;
    private aq;
    private at;
    private y;
    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 v;
    private b;
    private as;
    private d;
    a0(): void;
    a1(a: number, b: any): void;
    a2(a: number, b: any): void;
    a3(a: number, b: any, c: any): void;
    a4(a: number, b: number): void;
}
/**
 * @hidden
 */
export declare class FlatDataProviderTargetDataSourceNotifier extends Base implements IDataSourceUpdateNotifier {
    static $t: Type;
    private a;
    private b;
    get c(): IDataSourceUpdateNotifier;
    constructor(a: FlatDataProvider, 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;
}
