import { EventEmitter } from '@angular/core';
import { IgxPageRequestedEventArgs } from "./igx-page-requested-event-args";
import { GenericDataSourceSchemaPropertyType } from "./GenericDataSourceSchemaPropertyType";
import { DataSourceSummaryOperand } from "./DataSourceSummaryOperand";
import { IgxBaseGenericDataSource } from "./igx-base-generic-data-source";
import { GenericVirtualDataSource as GenericVirtualDataSource_internal } from "./GenericVirtualDataSource";
export declare class IgxGenericVirtualDataSource extends IgxBaseGenericDataSource {
    protected createImplementation(): GenericVirtualDataSource_internal;
    /**
                                 * @hidden
                                 */
    get i(): GenericVirtualDataSource_internal;
    constructor();
    /**
     * Starts filling a page for the specified request. Must later be followed by FillPageEnd to complete the request.
    
    * @param requestId  * The ID of the requested page.
    */
    fillPageStart(requestId: number): void;
    /**
     * Ends the current page. Must be called after FillPageStart.
    
    */
    fillPageEnd(): void;
    /**
     * Provides the row count for the datasource. The datasource obtains this from the page request so be must be called
     * after FillPageStart.
    
    * @param count  * The row count.
    */
    fillCount(count: number): void;
    fillColumnBool(column: string, values: boolean[]): void;
    fillColumnInt(column: string, values: number[]): void;
    fillColumnDouble(column: string, values: number[]): void;
    fillColumnString(column: string, values: string[]): void;
    fillColumnDate(column: string, values: Date[]): void;
    addSchemaProperty(propertyName: string, propertyType: GenericDataSourceSchemaPropertyType | string): void;
    fillGroupStart(startIndex: number, endIndex: number): void;
    /**
     * Ends the current group.
    
    */
    fillGroupEnd(): void;
    fillGroupValueInt(propertyName: string, value: number): void;
    fillGroupValueDouble(propertyName: string, value: number): void;
    fillGroupValueString(propertyName: string, value: string): void;
    fillGroupValueDate(propertyName: string, value: Date): void;
    addSummaryInt(propertyName: string, operand: DataSourceSummaryOperand | string, value: number): void;
    addSummaryDouble(propertyName: string, operand: DataSourceSummaryOperand | string, value: number): void;
    addSummaryString(propertyName: string, operand: DataSourceSummaryOperand | string, value: string): void;
    addSummaryDate(propertyName: string, operand: DataSourceSummaryOperand | string, value: Date): void;
    private _pageRequested;
    /**
     * Raised when the datasource requests page data.
    */
    get pageRequested(): EventEmitter<{
        sender: any;
        args: IgxPageRequestedEventArgs;
    }>;
}
