import type { DatumParams } from '../../readers/wkt';
import type { NadGridDefinition } from '../../readers/nadgrid';
import type { ProjectionTransform } from '.';
import type { VectorPoint } from '../../geometry';
/** Define the projection with all it's variable components */
export interface ProjectionParams {
    name?: string;
    PROJECTION?: string;
    datumCode?: string;
    datumType?: number;
    srsCode?: string;
    long0?: number;
    long1?: number;
    long2?: number;
    longc?: number;
    lat0?: number;
    lat1?: number;
    lat2?: number;
    lamc?: number;
    latTs?: number;
    a?: number;
    b?: number;
    e?: number;
    R?: number;
    x0?: number;
    y0?: number;
    k?: number;
    k0?: number;
    rf?: number;
    rc?: number;
    es?: number;
    ep2?: number;
    alpha?: number;
    gamma?: number;
    zone?: number;
    h?: number;
    azi?: number;
    tilt?: number;
    sweep?: 'x' | 'y';
    rectifiedGridAngle?: number;
    utmSouth?: boolean;
    datumParams?: DatumParams;
    scaleFactor?: number;
    toMeter?: number;
    units?: string;
    fromGreenwich?: number;
    approx?: boolean;
    axis?: string;
    nadgrids?: string;
    sphere?: boolean;
    ellps?: string;
    noDefs?: boolean;
    noOff?: boolean;
    noRot?: boolean;
    rA?: boolean;
    projName?: string;
    grids?: NadGridDefinition[];
}
/** Base class for all projections */
export declare class ProjectionBase implements ProjectionTransform {
    name: string;
    projName?: string;
    static names: string[];
    datumCode: string;
    datumType: number;
    datumParams: DatumParams;
    srsCode: string;
    long0: number;
    long1: number;
    lat0: number;
    lat1: number;
    lat2: number;
    latTs?: number;
    a: number;
    b: number;
    e: number;
    x0: number;
    y0: number;
    k?: number;
    k0: number;
    rf: number;
    rA: boolean;
    rc?: number;
    es: number;
    ep2: number;
    alpha?: number;
    gamma?: number;
    zone?: number;
    rectifiedGridAngle?: number;
    utmSouth: boolean;
    toMeter?: number;
    units: string;
    fromGreenwich: number;
    approx: boolean;
    axis: string;
    nadgrids: string;
    grids?: NadGridDefinition[];
    sphere: boolean;
    ellps: string;
    /** @param params - projection specific parameters */
    constructor(params?: ProjectionParams);
    /**
     * Forward projection from x-y to lon-lat. In this case, radians to degrees
     * @param p - Vector Point. This is a placeholder for a lon-lat WGS84 point
     */
    forward(p: VectorPoint): void;
    /**
     * Inverse projection from lon-lat to x-y. In this case, degrees to radians
     * @param p - Vector Point. This is a placeholder for a lon-lat WGS84 point
     */
    inverse(p: VectorPoint): void;
}
//# sourceMappingURL=base.d.ts.map