import { DependencyObject } from "./DependencyObject";
import { INotifyPropertyChanged, PropertyChangedEventArgs, Type } from "./type";
import { IDataSourceExecutionContext } from "./IDataSourceExecutionContext";
import { DataSourceSortDescriptionCollection } from "./DataSourceSortDescriptionCollection";
import { DataSourceGroupDescriptionCollection } from "./DataSourceGroupDescriptionCollection";
import { DataSourceSummaryDescriptionCollection } from "./DataSourceSummaryDescriptionCollection";
import { FilterExpressionCollection } from "./FilterExpressionCollection";
import { IDataSource } from "./IDataSource";
/**
 * @hidden
 */
export declare abstract class BaseGenericDataSource extends DependencyObject implements INotifyPropertyChanged {
    static $t: Type;
    abstract r(): IDataSource;
    private s;
    get t(): IDataSourceExecutionContext;
    set t(a: IDataSourceExecutionContext);
    private l;
    get m(): DataSourceSortDescriptionCollection;
    private j;
    get k(): DataSourceGroupDescriptionCollection;
    private n;
    get o(): DataSourceSummaryDescriptionCollection;
    private p;
    get q(): FilterExpressionCollection;
    constructor();
    private ab;
    private w;
    private ac;
    private v;
    propertyChanged: (sender: any, e: PropertyChangedEventArgs) => void;
    protected onPropertyUpdated(a: string, b: any, c: any): void;
    protected propertyUpdatedOverride(a: string, b: any, c: any): void;
    z(): void;
    protected abstract aa(): void;
}
