import { IgRect } from './IgRect';
import { ShapefileConverter as ShapefileConverter_internal } from "./ShapefileConverter";
import { ShapeType } from "./ShapeType";
import { Header } from "./Header";
import { IgcAsyncCompletedEventArgs } from './igc-async-completed-event-args';
import { IgcShapefileRecord } from './igc-shapefile-record';
import { IgcShapeFilterRecordEventArgs } from './igc-shape-filter-record-event-args';
/**
 * Class used to convert Shapefiles into CLR objects.
*/
export declare class IgcShapeDataSource {
    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(): IgcShapefileRecord[];
    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): IgcShapefileRecord;
    getRecordBounds(index: number): IgRect;
    getRecordFieldNames(index: number): string[];
    getRecordValue(index: number, fieldName: string): any;
    removeRecord(index: 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;
    private _importPending;
    private _importPending_wrapped;
    /**
     * Event raised when the Shapefile has been imported from both the ShapefileSource and DatabaseSource Uris.
    */
    importPending: (s: IgcShapeDataSource, e: IgcAsyncCompletedEventArgs) => void;
    private _importCompleted;
    private _importCompleted_wrapped;
    /**
     * Event raised when the Shapefile has been imported from both the ShapefileSource and DatabaseSource Uris.
    */
    importCompleted: (s: IgcShapeDataSource, e: IgcAsyncCompletedEventArgs) => void;
    private _filter;
    private _filter_wrapped;
    filter: (s: IgcShapeDataSource, e: IgcShapeFilterRecordEventArgs) => void;
}
