import { type LatLngBound, type LatLngPoint, type Vector } from '@dereekb/util';
import { type MapboxTileSize, type MapboxZoomLevel } from './mapbox';
export interface MapboxViewportBoundFunctionConfig {
    readonly mapCanvasSize: Vector;
    /**
     * Mapbox tilesize being used. Defaults to 512x512.
     */
    readonly tileSize?: MapboxTileSize;
}
/**
 * Input for MapboxViewportBoundFunction.
 */
export interface MapboxViewportBoundFunctionInput {
    /**
     * Center of the viewport
     */
    readonly center: LatLngPoint;
    /**
     * Zoom level
     */
    readonly zoom: MapboxZoomLevel;
}
/**
 * Used to calculate the bounds of a view/object given the input MapboxViewportBoundFunctionInput.
 */
export type MapboxViewportBoundFunction = (input: MapboxViewportBoundFunctionInput) => LatLngBound;
export declare function mapboxViewportBoundFunction(config: MapboxViewportBoundFunctionConfig): MapboxViewportBoundFunction;
