import { VectorTileFeature } from '@mapbox/vector-tile';
import FeatureFormat, { ReadOptions } from 'ol/format/Feature.js';
import Projection from 'ol/proj/Projection.js';
import RenderFeature from 'ol/render/Feature.js';
import { FeatureLike } from 'ol/Feature.js';
declare module '@mapbox/vector-tile' {
    interface VectorTileFeature {
        toGeoJSON(x: number, y: number, z: number, project?: (xy: [number, number]) => [number, number]): GeoJSON.Feature;
    }
}
export interface Options {
    layers?: string[];
    featureClass?: typeof RenderFeature;
    geometryName?: string;
    idProperty?: string;
    extent?: number;
}
export declare class MBTilesFormat<F extends FeatureLike = RenderFeature> extends FeatureFormat<F> {
    dataProjection: Projection;
    private featureClass_;
    private geometryName_;
    private layers_;
    private idProperty_;
    supportedMediaTypes: string[];
    extent: number;
    static MBTypes: {
        readonly mono: readonly ["Unknown", "Point", "LineString", "Polygon"];
        readonly multi: readonly ["Unknown", "MultiPoint", "MultiLineString", "Polygon"];
    };
    constructor(options?: Options);
    readFeature(source: VectorTileFeature, options?: ReadOptions): F;
    readFeatures(source: ArrayBuffer, options?: ReadOptions): F[];
    readProjection(): Projection;
}
