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 { DataSourceRowExpansionChangedEventArgs } from "./DataSourceRowExpansionChangedEventArgs";
import { DataSourceSpecialRow } from "./DataSourceSpecialRow";
import { DataSourceSchemaChangedEventArgs } from "./DataSourceSchemaChangedEventArgs";
import { DataSourceRowType } from "./DataSourceRowType";
import { DataSourceSchemaPropertyType } from "./DataSourceSchemaPropertyType";
import { ISummaryResult } from "./ISummaryResult";
/**
 * @hidden
 */
export declare abstract class BaseDataSource extends Base implements IDataSource {
    static $t: Type;
    constructor();
    private cc;
    private bk;
    private cd;
    private bi;
    protected onSortDescriptionsChanged(a: NotifyCollectionChangedEventArgs): void;
    protected onGroupDescriptionsChanged(a: NotifyCollectionChangedEventArgs): void;
    protected onSummaryDescriptionsChanged(a: NotifyCollectionChangedEventArgs): void;
    protected aj: boolean;
    protected onFilterExpressionsChanged(a: NotifyCollectionChangedEventArgs): void;
    onRowExpansionChanged(a: number, b: boolean, c: boolean): void;
    isPlaceholderItem(a: number): boolean;
    aq: any;
    private _externalDataSource;
    externalDataSource: IExternalDataSource;
    private q;
    private p;
    private g;
    private r;
    private h;
    protected abstract readonly actualBaseDataProvider: IDataSourceDataProvider;
    private m;
    actualSchema: IDataSourceSchema;
    private am;
    actualCount: number;
    private an;
    firstVisibleIndexRequested: number;
    private ao;
    lastVisibleIndexRequested: number;
    private n;
    updateNotifier: 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;
    readonly 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;
    readonly isVirtual: boolean;
    private j;
    protected readonly dataProviderUpdateNotifier: IDataSourceDataProviderUpdateNotifier;
    protected onActualDataProviderChanged(a: any, b: any): void;
    protected onRequestedVisibleRangeChanged(): void;
    private l;
    executionContext: IDataSourceExecutionContext;
    schemaChanged: (sender: any, args: DataSourceSchemaChangedEventArgs) => void;
    rowExpansionChanged: (sender: any, args: DataSourceRowExpansionChangedEventArgs) => void;
    protected canInitialize(): boolean;
    private w;
    protected readonly isInitializing: boolean;
    protected get_isSortingSupported(): boolean;
    readonly isSortingSupported: boolean;
    protected get_isFilteringSupported(): boolean;
    readonly isFilteringSupported: boolean;
    readonly sortDescriptions: SortDescriptionCollection;
    readonly groupDescriptions: SortDescriptionCollection;
    readonly filterExpressions: FilterExpressionCollection;
    readonly summaryDescriptions: SummaryDescriptionCollection;
    private f;
    summaryScope: DataSourceSummaryScope;
    private u;
    deferAutoRefresh: boolean;
    private b;
    primaryKey: string[];
    private a;
    actualPrimaryKey: string[];
    private c;
    propertiesRequested: string[];
    private ac;
    notifyUsingSourceIndexes: boolean;
    protected get_isItemIndexLookupSupported(): boolean;
    readonly isItemIndexLookupSupported: boolean;
    protected get_isKeyIndexLookupSupported(): boolean;
    readonly isKeyIndexLookupSupported: boolean;
    protected initializeOverride(): void;
    private ad;
    protected resolveFullCount(a: number): number;
    private be;
    private bm;
    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;
    bg(): void;
    ca(): 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;
    readonly isGroupingSupported: boolean;
    private e;
    protected get_sectionHeaderDisplayMode(): DataSourceSectionHeaderDisplayMode;
    protected set_sectionHeaderDisplayMode(a: DataSourceSectionHeaderDisplayMode): void;
    sectionHeaderDisplayMode: DataSourceSectionHeaderDisplayMode;
    private x;
    protected get_isSectionCollapsable(): boolean;
    protected set_isSectionCollapsable(a: boolean): void;
    isSectionCollapsable: boolean;
    private z;
    protected get_isSectionExpandedDefault(): boolean;
    protected set_isSectionExpandedDefault(a: boolean): void;
    isSectionExpandedDefault: boolean;
    private v;
    protected get_includeSummaryRowsInSection(): boolean;
    protected set_includeSummaryRowsInSection(a: boolean): void;
    includeSummaryRowsInSection: boolean;
    private ab;
    protected get_isSectionSummaryRowsAtBottom(): boolean;
    protected set_isSectionSummaryRowsAtBottom(a: boolean): void;
    isSectionSummaryRowsAtBottom: boolean;
    private aa;
    protected get_isSectionHeaderNormalRow(): boolean;
    protected set_isSectionHeaderNormalRow(a: boolean): void;
    isSectionHeaderNormalRow: boolean;
    private y;
    protected get_isSectionContentVisible(): boolean;
    protected set_isSectionContentVisible(a: boolean): void;
    isSectionContentVisible: boolean;
    private af;
    shouldEmitSectionHeaders: boolean;
    private ae;
    shouldEmitSectionFooters: boolean;
    private ag;
    shouldEmitShiftedRows: 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;
    getRootSummaryRowCount(): number;
    getRootSummaryResults(): ISummaryResult[];
    getSectionSummaryResults(a: number): ISummaryResult[][];
    clone(): IDataSource;
    cloneProperties(a: IDataSource): void;
}
/**
 * @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;
}
