import { EventEmitter } from '@angular/core';
import { IgRect } from './IgRect';
import { ShapefileConverter as ShapefileConverter_internal } from "./ShapefileConverter";
import { ShapeType } from "./ShapeType";
import { Header } from "./Header";
import { IgxAsyncCompletedEventArgs } from './igx-async-completed-event-args';
import { IgxShapefileRecord } from './igx-shapefile-record';
import { IgxShapeFilterRecordEventArgs } from './igx-shape-filter-record-event-args';
/**
 * Class used to convert Shapefiles into CLR objects.
*/
export declare class IgxShapeDataSource {
    protected createImplementation(): ShapefileConverter_internal;
    protected _implementation: any;
    readonly i: ShapefileConverter_internal;
    private onImplementationCreated;
    constructor();
    protected _provideImplementation(i: any): void;
    dataBind(): void;
    /**
    * Gets the point data.
    */
    getPointData(): IgxShapefileRecord[];
    name: string;
    /**
     * Gets the world bounding rectangle, as read from the header of the Shapefile.
    */
    worldRect: IgRect;
    /**
     * Gets the world bounding rectangle, based on the filtered shapes
    */
    computedWorldRect: IgRect;
    /**
     * Gets the shape type, as read from the header of the Shapefile.
    */
    readonly shapeType: ShapeType;
    /**
     * Gets the header of the Shapefile.
    */
    shapeHeader: Header;
    /**
     * The Uri of the .shp portion of the Shapefile.
    */
    deferImportCompleted: boolean;
    /**
     * The Uri of the .shp portion of the Shapefile.
    */
    shapefileSource: string;
    /**
     * The Uri of the .dbf portion of the Shapefile.
    */
    databaseSource: string;
    /**
     * The total number of ShapefileRecords in the collection.
    */
    readonly count: number;
    getWorldBounds(useComputed: boolean): IgRect;
    setWorldBounds(setComputed: boolean, bounds: IgRect): void;
    sendImportCompleted(): void;
    getRecordsCount(): number;
    getRecord(index: number): IgxShapefileRecord;
    getRecordBounds(index: number): IgRect;
    getRecordFieldNames(index: number): string[];
    getRecordValue(index: number, fieldName: string): any;
    removeRecord(index: number): void;
    shiftAllShapes(offsetX: number, offsetY: number): void;
    shiftShapes(recordIndex: number, offsetX: number, offsetY: number): void;
    getMaxLongitude(recordIndex: number, useLargestShape: boolean, fromLongitude: number, toLongitude: number): number;
    setRecordValue(index: number, fieldName: string, value: any): void;
    getRecordValues(fieldName: string): any[];
    setRecordValues(fieldName: string, values: any[]): void;
    getLargestShapeBoundsForRecord(index: number): IgRect;
    protected _zoneRunner: (act: () => void) => void;
    protected _runInZone(act: () => void): void;
    private _importPending;
    /**
     * Event raised when the Shapefile has been imported from both the ShapefileSource and DatabaseSource Uris.
    */
    readonly importPending: EventEmitter<{
        sender: any;
        args: IgxAsyncCompletedEventArgs;
    }>;
    private _importCompleted;
    /**
     * Event raised when the Shapefile has been imported from both the ShapefileSource and DatabaseSource Uris.
    */
    readonly importCompleted: EventEmitter<{
        sender: any;
        args: IgxAsyncCompletedEventArgs;
    }>;
    private _filter;
    readonly filter: EventEmitter<{
        sender: any;
        args: IgxShapeFilterRecordEventArgs;
    }>;
}
