import { RGBAImage } from '../util/image';
import type { StyleImage } from '../style/style_image';
import type ImageManager from './image_manager';
import type Texture from './texture';
declare const IMAGE_PADDING: number;
export { IMAGE_PADDING };
declare type Rect = {
    x: number;
    y: number;
    w: number;
    h: number;
};
export declare class ImagePosition {
    paddedRect: Rect;
    pixelRatio: number;
    version: number;
    stretchY: Array<[number, number]> | undefined | null;
    stretchX: Array<[number, number]> | undefined | null;
    content: [number, number, number, number] | undefined | null;
    constructor(paddedRect: Rect, { pixelRatio, version, stretchX, stretchY, content }: StyleImage);
    get tl(): [number, number];
    get br(): [number, number];
    get tlbr(): Array<number>;
    get displaySize(): [number, number];
}
export default class ImageAtlas {
    image: RGBAImage;
    iconPositions: {
        [_: string]: ImagePosition;
    };
    patternPositions: {
        [_: string]: ImagePosition;
    };
    haveRenderCallbacks: Array<string>;
    uploaded: boolean | undefined | null;
    constructor(icons: {
        [_: string]: StyleImage;
    }, patterns: {
        [_: string]: StyleImage;
    });
    addImages(images: {
        [_: string]: StyleImage;
    }, positions: {
        [_: string]: ImagePosition;
    }, bins: Array<Rect>): void;
    patchUpdatedImages(imageManager: ImageManager, texture: Texture): void;
    patchUpdatedImage(position: ImagePosition | undefined | null, image: StyleImage | undefined | null, texture: Texture): void;
}
//# sourceMappingURL=image_atlas.d.ts.map