import { IDataSourceExecutionContext } from "./IDataSourceExecutionContext";
import { IgxDataSourceSortDescriptionCollection } from "./igx-data-source-sort-description-collection";
import { IgxDataSourceGroupDescriptionCollection } from "./igx-data-source-group-description-collection";
import { IgxDataSourceSummaryDescriptionCollection } from "./igx-data-source-summary-description-collection";
import { IgxFilterExpressionCollection } from "./igx-filter-expression-collection";
import { BaseGenericDataSource as BaseGenericDataSource_internal } from "./BaseGenericDataSource";
/**
 * The base class for generic data sources.
*/
export declare abstract class IgxBaseGenericDataSource {
    protected createImplementation(): BaseGenericDataSource_internal;
    protected _implementation: any;
    /**
     * @hidden
     */
    get i(): BaseGenericDataSource_internal; /**
                                 * @hidden
                                 */
    static _createFromInternal(internal: any): IgxBaseGenericDataSource;
    private onImplementationCreated;
    constructor();
    protected _provideImplementation(i: any): void;
    /**
     * Gets or sets the execution context that the data source should synchronize asynchronous actions with, or use to defer delayed actions.
    */
    get executionContext(): IDataSourceExecutionContext;
    set executionContext(v: IDataSourceExecutionContext);
    /**
     * Gets the current sort that is applied to the data source.
    */
    get sortDescriptions(): IgxDataSourceSortDescriptionCollection;
    /**
     * Gets the current grouping that is applied to the data source.
    */
    get groupDescriptions(): IgxDataSourceGroupDescriptionCollection;
    /**
     * Gets the current summaries that are applied to the data source.
    */
    get summaryDescriptions(): IgxDataSourceSummaryDescriptionCollection;
    /**
     * Gets the current filter that is applied to the data source.
    */
    get filterExpressions(): IgxFilterExpressionCollection;
    findByName(name: string): any;
    /**
     * Called to manually queue a refresh of the data source.
    
    */
    queueAutoRefresh(): void;
    protected _zoneRunner: (act: () => void) => void;
    protected _runInZone(act: () => void): void;
}
