import Point from './point';
/**
 * An `EdgeInset` object represents screen space padding applied to the edges of the viewport.
 * This shifts the apprent center or the vanishing point of the map. This is useful for adding floating UI elements
 * on top of the map and having the vanishing point shift as UI elements resize.
 *
 * @param {number} [top=0]
 * @param {number} [bottom=0]
 * @param {number} [left=0]
 * @param {number} [right=0]
 */
export default class EdgeInsets {
    top: number;
    bottom: number;
    left: number;
    right: number;
    constructor(top?: number, bottom?: number, left?: number, right?: number);
    /**
     * Interpolates the inset in-place.
     * This maintains the current inset value for any inset not present in `target`.
     *
     * @param {PaddingOptions} target
     * @param {number} t
     * @returns {EdgeInsets}
     * @memberof EdgeInsets
     */
    interpolate(start: IPaddingOptions | EdgeInsets, target: IPaddingOptions, t: number): EdgeInsets;
    /**
     * Utility method that computes the new apprent center or vanishing point after applying insets.
     * This is in pixels and with the top left being (0.0) and +y being downwards.
     *
     * @param {number} width
     * @param {number} height
     * @returns {Point}
     * @memberof EdgeInsets
     */
    getCenter(width: number, height: number): Point;
    equals(other: IPaddingOptions): boolean;
    clone(): EdgeInsets;
    /**
     * Returns the current sdtate as json, useful when you want to have a
     * read-only representation of the inset.
     *
     * @returns {PaddingOptions}
     * @memberof EdgeInsets
     */
    toJSON(): IPaddingOptions;
}
export interface IPaddingOptions {
    top?: number;
    bottom?: number;
    right?: number;
    left?: number;
}
