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;
    get i(): ShapefileConverter_internal;
    private onImplementationCreated;
    constructor();
    protected _provideImplementation(i: any): void;
    dataBind(): void;
    /**
    * Gets the point data.
    */
    getPointData(): IgxShapefileRecord[];
    get name(): string;
    set name(v: string);
    /**
     * Gets the world bounding rectangle, as read from the header of the Shapefile.
    */
    get worldRect(): IgRect;
    set worldRect(v: IgRect);
    static ngAcceptInputType_worldRect: IgRect | string;
    /**
     * Gets the world bounding rectangle, based on the filtered shapes
    */
    get computedWorldRect(): IgRect;
    set computedWorldRect(v: IgRect);
    static ngAcceptInputType_computedWorldRect: IgRect | string;
    /**
     * Gets the shape type, as read from the header of the Shapefile.
    */
    get shapeType(): ShapeType;
    /**
     * Gets the header of the Shapefile.
    */
    get shapeHeader(): Header;
    set shapeHeader(v: Header);
    /**
     * The Uri of the .shp portion of the Shapefile.
    */
    get deferImportCompleted(): boolean;
    set deferImportCompleted(v: boolean);
    static ngAcceptInputType_deferImportCompleted: boolean | string;
    /**
     * The Uri of the .shp portion of the Shapefile.
    */
    get shapefileSource(): string;
    set shapefileSource(v: string);
    /**
     * The Uri of the .dbf portion of the Shapefile.
    */
    get databaseSource(): string;
    set databaseSource(v: string);
    /**
     * The total number of ShapefileRecords in the collection.
    */
    get count(): number;
    static ngAcceptInputType_count: number | string;
    findByName(name: string): any;
    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.
    */
    get importPending(): EventEmitter<{
        sender: any;
        args: IgxAsyncCompletedEventArgs;
    }>;
    private _importCompleted;
    /**
     * Event raised when the Shapefile has been imported from both the ShapefileSource and DatabaseSource Uris.
    */
    get importCompleted(): EventEmitter<{
        sender: any;
        args: IgxAsyncCompletedEventArgs;
    }>;
    private _filter;
    get filter(): EventEmitter<{
        sender: any;
        args: IgxShapeFilterRecordEventArgs;
    }>;
}
