import type * as GeoJson from "geojson";
import Geocoded, { GeocodedObject } from "../../Geocoded";
import AdminLevel from "../../AdminLevel";
import { NominatimOsmType } from "./..";
export interface NominatimGeocodedObject extends GeocodedObject {
    readonly displayName?: string;
    readonly osmId?: number;
    readonly osmType?: NominatimOsmType;
    readonly categories?: string[];
    readonly types?: string[];
    readonly attribution?: string;
    readonly subLocalityLevels?: AdminLevel[];
    readonly shape?: GeoJson.Geometry | string;
}
export default class NominatimGeocoded extends Geocoded {
    private readonly displayName?;
    private readonly osmId?;
    private readonly osmType?;
    private readonly categories?;
    private readonly types?;
    private readonly attribution?;
    private readonly subLocalityLevels;
    private readonly shape?;
    protected constructor({ displayName, osmId, osmType, categories, types, attribution, subLocalityLevels, shape, ...geocodedObject }: NominatimGeocodedObject);
    static create(object: NominatimGeocodedObject): NominatimGeocoded;
    toObject(): NominatimGeocodedObject;
    withDisplayName(displayName: string): NominatimGeocoded;
    getDisplayName(): undefined | string;
    withOsmId(osmId: number): NominatimGeocoded;
    getOsmId(): undefined | number;
    withOsmType(osmType: NominatimOsmType): NominatimGeocoded;
    getOsmType(): undefined | NominatimOsmType;
    withCategories(categories: string[]): NominatimGeocoded;
    getCategories(): undefined | string[];
    withTypes(types: string[]): NominatimGeocoded;
    getTypes(): undefined | string[];
    withAttribution(attribution: string): NominatimGeocoded;
    getAttribution(): undefined | string;
    addSubLocalityLevel(subLocalityLevel: AdminLevel): void;
    getSubLocalityLevels(): AdminLevel[];
    withShape(shape: GeoJson.Geometry | string): NominatimGeocoded;
    getShape(): undefined | GeoJson.Geometry | string;
}
//# sourceMappingURL=NominatimGeocoded.d.ts.map