import { Base, PropertyChangedEventArgs, Type } from "./type";
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 { SummaryDescriptionCollection } from "./SummaryDescriptionCollection";
import { DataSourceSummaryScope } from "./DataSourceSummaryScope";
import { DataSourceSectionHeaderDisplayMode } from "./DataSourceSectionHeaderDisplayMode";
import { NotifyCollectionChangedEventArgs } from "./NotifyCollectionChangedEventArgs";
import { DataSourceSpecialRow } from "./DataSourceSpecialRow";
import { DataSourceSchemaChangedEventArgs } from "./DataSourceSchemaChangedEventArgs";
import { DataSourceRowType } from "./DataSourceRowType";
import { DataSourceSchemaPropertyType } from "./DataSourceSchemaPropertyType";
/**
 * @hidden
 */
export declare abstract class BaseDataSource extends Base implements IDataSource {
    static $t: Type;
    constructor();
    private b2;
    private bb;
    private b3;
    private a9;
    protected onSortDescriptionsChanged(a: NotifyCollectionChangedEventArgs): void;
    protected onGroupDescriptionsChanged(a: NotifyCollectionChangedEventArgs): void;
    protected onSummaryDescriptionsChanged(a: NotifyCollectionChangedEventArgs): void;
    protected af: boolean;
    protected onFilterExpressionsChanged(a: NotifyCollectionChangedEventArgs): void;
    isPlaceholderItem(a: number): boolean;
    am: any;
    o: IExternalDataSource;
    private q;
    private p;
    private g;
    private r;
    private h;
    protected abstract get actualBaseDataProvider(): IDataSourceDataProvider;
    private m;
    get actualSchema(): IDataSourceSchema;
    set actualSchema(a: IDataSourceSchema);
    private ai;
    get actualCount(): number;
    set actualCount(a: number);
    private aj;
    get firstVisibleIndexRequested(): number;
    set firstVisibleIndexRequested(a: number);
    private ak;
    get lastVisibleIndexRequested(): number;
    set lastVisibleIndexRequested(a: number);
    private n;
    get updateNotifier(): IDataSourceUpdateNotifier;
    set updateNotifier(a: IDataSourceUpdateNotifier);
    getItemAtIndex(a: number): any;
    getItemProperty(a: any, b: string): any;
    getSpecialRowItemValue(a: DataSourceSpecialRow, b: string): any;
    getItemPropertyAtIndex(a: number, b: string): any;
    protected get_fullSectionInformationWillForceLoad(): boolean;
    get fullSectionInformationWillForceLoad(): boolean;
    propertyChanged: (sender: any, e: PropertyChangedEventArgs) => void;
    protected onPropertyUpdated(a: string, b: any, c: any): void;
    protected propertyUpdatedOverride(a: string, b: any, c: any): void;
    protected onActualPrimaryKeyChanged(a: string[], b: string[]): void;
    protected onActualPrimaryKeyChangedOverrride(a: string[], b: string[]): void;
    protected get_isVirtual(): boolean;
    get isVirtual(): boolean;
    private j;
    protected get dataProviderUpdateNotifier(): IDataSourceDataProviderUpdateNotifier;
    protected onActualDataProviderChanged(a: any, b: any): void;
    protected onRequestedVisibleRangeChanged(): void;
    private l;
    get executionContext(): IDataSourceExecutionContext;
    set executionContext(a: IDataSourceExecutionContext);
    schemaChanged: (sender: any, args: DataSourceSchemaChangedEventArgs) => void;
    protected canInitialize(): boolean;
    private v;
    protected get isInitializing(): boolean;
    protected get_isSortingSupported(): boolean;
    get isSortingSupported(): boolean;
    protected get_isFilteringSupported(): boolean;
    get isFilteringSupported(): boolean;
    get sortDescriptions(): SortDescriptionCollection;
    get groupDescriptions(): SortDescriptionCollection;
    get filterExpressions(): FilterExpressionCollection;
    get summaryDescriptions(): SummaryDescriptionCollection;
    private f;
    get summaryScope(): DataSourceSummaryScope;
    set summaryScope(a: DataSourceSummaryScope);
    private u;
    get deferAutoRefresh(): boolean;
    set deferAutoRefresh(a: boolean);
    private b;
    get primaryKey(): string[];
    set primaryKey(a: string[]);
    private a;
    get actualPrimaryKey(): string[];
    set actualPrimaryKey(a: string[]);
    private c;
    get propertiesRequested(): string[];
    set propertiesRequested(a: string[]);
    private y;
    get notifyUsingSourceIndexes(): boolean;
    set notifyUsingSourceIndexes(a: boolean);
    protected get_isItemIndexLookupSupported(): boolean;
    get isItemIndexLookupSupported(): boolean;
    protected get_isKeyIndexLookupSupported(): boolean;
    get isKeyIndexLookupSupported(): boolean;
    protected initializeOverride(): void;
    private z;
    protected resolveFullCount(a: number): number;
    private a6;
    private bd;
    onSetItem(a: number, b: any, c: any): void;
    onBroadcastSetItem(a: number, b: any, c: any): void;
    onSetItemOverride(a: number, b: any, c: any): void;
    onClearItems(): void;
    onBroadcastClearItems(): void;
    onClearItemsOverride(): void;
    onInsertItem(a: number, b: any): void;
    onBroadcastInsertItem(a: number, b: any): void;
    onInsertItemOverride(a: number, b: any): void;
    onRemoveItem(a: number, b: any): void;
    onBroadcastRemoveItem(a: number, b: any): void;
    onRemoveItemOverride(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;
    s: boolean;
    queueAutoRefresh(): void;
    a7(): void;
    b0(): void;
    protected refreshInternalOverride(): void;
    flushAutoRefresh(): void;
    refresh(): void;
    indexOfItem(a: any): number;
    indexOfKey(a: any[]): number;
    protected getPrimaryKeyValue(a: any, b: any[]): void;
    getRowType(a: number): DataSourceRowType;
    getMainValuePath(a: DataSourceRowType): string;
    getStickyRows(): number[];
    getStickyRowsInRange(a: number, b: number): 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;
    get isGroupingSupported(): boolean;
    private e;
    protected get_sectionHeaderDisplayMode(): DataSourceSectionHeaderDisplayMode;
    protected set_sectionHeaderDisplayMode(a: DataSourceSectionHeaderDisplayMode): void;
    get sectionHeaderDisplayMode(): DataSourceSectionHeaderDisplayMode;
    set sectionHeaderDisplayMode(a: DataSourceSectionHeaderDisplayMode);
    private w;
    protected get_isSectionCollapsable(): boolean;
    protected set_isSectionCollapsable(a: boolean): void;
    get isSectionCollapsable(): boolean;
    set isSectionCollapsable(a: boolean);
    private x;
    protected get_isSectionExpandedDefault(): boolean;
    protected set_isSectionExpandedDefault(a: boolean): void;
    get isSectionExpandedDefault(): boolean;
    set isSectionExpandedDefault(a: boolean);
    private ab;
    get shouldEmitSectionHeaders(): boolean;
    set shouldEmitSectionHeaders(a: boolean);
    private aa;
    get shouldEmitSectionFooters(): boolean;
    set shouldEmitSectionFooters(a: boolean);
    private ac;
    get shouldEmitShiftedRows(): boolean;
    set shouldEmitShiftedRows(a: boolean);
    private t;
    protected d: boolean[];
    protected ensureComparables(a: IDataSourceSchema): void;
    resolveSchemaPropertyType(a: string): DataSourceSchemaPropertyType;
    setIsRowExpandedAtIndex(a: number, b: boolean): void;
    getIsRowExpandedAtIndex(a: number): boolean;
    getRowLevel(a: number): number;
}
/**
 * @hidden
 */
export declare class DefaultDataSourceDataProviderUpdateNotifier extends Base implements IDataSourceDataProviderUpdateNotifier {
    static $t: Type;
    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;
}
