import { IDataSource } from "./IDataSource";
import { IExternalDataSource } from "./IExternalDataSource";
import { IDataSourceDataProvider } from "./IDataSourceDataProvider";
import { IDataSourceSchema } from "./IDataSourceSchema";
import { IDataSourceUpdateNotifier } from "./IDataSourceUpdateNotifier";
import { IDataSourceDataProviderUpdateNotifier } from "./IDataSourceDataProviderUpdateNotifier";
import { IDataSourceExecutionContext } from "./IDataSourceExecutionContext";
import { SortDescriptionCollection } from "./SortDescriptionCollection";
import { FilterExpressionCollection } from "./FilterExpressionCollection";
import { NotifyCollectionChangedEventArgs } from "./NotifyCollectionChangedEventArgs";
import { PropertyChangedEventArgs, Base, Type } from "./type";
import { DataSourceSpecialRow } from "./DataSourceSpecialRow";
import { DataSourceSchemaChangedEventArgs } from "./DataSourceSchemaChangedEventArgs";
import { DataSourceRowType } from "./DataSourceRowType";
import { DataSourceSchemaPropertyType } from "./DataSourceSchemaPropertyType";
export declare abstract class BaseDataSource extends Base implements IDataSource {
    constructor();
    private bt(a, b);
    private a3(a, b);
    private a1(a, b);
    protected bp(a: NotifyCollectionChangedEventArgs): void;
    protected bg(a: NotifyCollectionChangedEventArgs): void;
    protected aa: boolean;
    protected bf(a: NotifyCollectionChangedEventArgs): void;
    isPlaceholderItem(a: number): boolean;
    ah: any;
    m: IExternalDataSource;
    private o;
    private n;
    private e;
    private f;
    protected readonly abstract g: IDataSourceDataProvider;
    private k;
    actualSchema: IDataSourceSchema;
    private ad;
    actualCount: number;
    private ae;
    firstVisibleIndexRequested: number;
    private af;
    lastVisibleIndexRequested: number;
    private l;
    updateNotifier: IDataSourceUpdateNotifier;
    getItemAtIndex(a: number): any;
    getItemProperty(a: any, b: string): any;
    ai(a: DataSourceSpecialRow, b: string): any;
    getItemPropertyAtIndex(a: number, b: string): any;
    protected get_z(): boolean;
    readonly z: boolean;
    propertyChanged: (sender: any, e: PropertyChangedEventArgs) => void;
    protected bj(a: string, b: any, c: any): void;
    protected bq(a: string, b: any, c: any): void;
    protected a7(a: string[], b: string[]): void;
    protected a8(a: string[], b: string[]): void;
    protected get_isVirtual(): boolean;
    readonly isVirtual: boolean;
    private h;
    protected readonly i: IDataSourceDataProviderUpdateNotifier;
    protected a6(a: any, b: any): void;
    protected bm(): void;
    private j;
    executionContext: IDataSourceExecutionContext;
    schemaChanged: (sender: any, args: DataSourceSchemaChangedEventArgs) => void;
    protected y(): boolean;
    private s;
    protected readonly ab: boolean;
    protected get_isSortingSupported(): boolean;
    readonly isSortingSupported: boolean;
    protected get_isFilteringSupported(): boolean;
    readonly isFilteringSupported: boolean;
    readonly sortDescriptions: SortDescriptionCollection;
    readonly groupDescriptions: SortDescriptionCollection;
    readonly filterExpressions: FilterExpressionCollection;
    private r;
    deferAutoRefresh: boolean;
    private b;
    primaryKey: string[];
    private a;
    actualPrimaryKey: string[];
    private c;
    propertiesRequested: string[];
    private t;
    notifyUsingSourceIndexes: boolean;
    protected get_isItemIndexLookupSupported(): boolean;
    readonly isItemIndexLookupSupported: boolean;
    protected get_isKeyIndexLookupSupported(): boolean;
    readonly isKeyIndexLookupSupported: boolean;
    protected a4(): void;
    private u;
    protected ag(a: number): number;
    private ay(a, b);
    private a5();
    bn(a: number, b: any, c: any): void;
    bc(a: number, b: any, c: any): void;
    bo(a: number, b: any, c: any): void;
    bd(): void;
    a9(): void;
    be(): void;
    bh(a: number, b: any): void;
    ba(a: number, b: any): void;
    bi(a: number, b: any): void;
    bk(a: number, b: any): void;
    bb(a: number, b: any): void;
    bl(a: number, b: any): void;
    notifySetItem(a: number, b: any, c: any): void;
    notifyClearItems(): void;
    notifyInsertItem(a: number, b: any): void;
    notifyRemoveItem(a: number, b: any): void;
    p: boolean;
    queueAutoRefresh(): void;
    az(): void;
    br(): void;
    protected bs(): void;
    flushAutoRefresh(): void;
    refresh(): void;
    indexOfItem(a: any): number;
    indexOfKey(a: any[]): number;
    protected a2(a: any, b: any[]): void;
    getRowType(a: number): DataSourceRowType;
    getMainValuePath(a: DataSourceRowType): string;
    getStickyRows(): number[];
    isRowSpanning(a: DataSourceRowType): boolean;
    getStickyRowPriority(a: number): number;
    isExclusivelySticky(a: number): boolean;
    pinRow(a: any[]): void;
    unpinRow(a: any[]): void;
    clearPinnedRows(): void;
    isRowPinned(a: number): boolean;
    protected get_isGroupingSupported(): boolean;
    readonly isGroupingSupported: boolean;
    private w;
    shouldEmitSectionHeaders: boolean;
    private v;
    shouldEmitSectionFooters: boolean;
    private x;
    shouldEmitShiftedRows: boolean;
    private q;
    protected d: boolean[];
    protected a0(a: IDataSourceSchema): void;
    resolveSchemaPropertyType(a: string): DataSourceSchemaPropertyType;
    static $t: Type;
}
export declare class DefaultDataSourceDataProviderUpdateNotifier extends Base implements IDataSourceDataProviderUpdateNotifier {
    private a;
    constructor(a: BaseDataSource);
    notifySetItem(a: number, b: any, c: any): void;
    notifyClearItems(): void;
    notifyInsertItem(a: number, b: any): void;
    notifyRemoveItem(a: number, b: any): void;
    static $t: Type;
}
