import { Evented } from '../util/evented';
import { RGBAImage } from '../util/image';
import { ImagePosition } from './image_atlas';
import Texture from './texture';
import type { StyleImage } from '../style/style_image';
import type Context from '../gl/context';
import type { Bin } from 'potpack';
import type { Callback } from '../types/callback';
declare type Pattern = {
    bin: Bin;
    position: ImagePosition;
};
declare class ImageManager extends Evented {
    images: {
        [_: string]: StyleImage;
    };
    updatedImages: {
        [_: string]: boolean;
    };
    callbackDispatchedThisFrame: {
        [_: string]: boolean;
    };
    loaded: boolean;
    requestors: Array<{
        ids: Array<string>;
        callback: Callback<{
            [_: string]: StyleImage;
        }>;
    }>;
    patterns: {
        [_: string]: Pattern;
    };
    atlasImage: RGBAImage;
    atlasTexture: Texture | undefined | null;
    dirty: boolean;
    constructor();
    isLoaded(): boolean;
    setLoaded(loaded: boolean): void;
    getImage(id: string): StyleImage | undefined | null;
    addImage(id: string, image: StyleImage): void;
    _validate(id: string, image: StyleImage): boolean;
    _validateStretch(stretch: Array<[number, number]> | undefined | null | void, size: number): boolean;
    _validateContent(content: [number, number, number, number] | undefined | null | void, image: StyleImage): boolean;
    updateImage(id: string, image: StyleImage): void;
    removeImage(id: string): void;
    listImages(): Array<string>;
    getImages(ids: Array<string>, callback: Callback<{
        [_: string]: StyleImage;
    }>): void;
    _notify(ids: Array<string>, callback: Callback<{
        [_: string]: StyleImage;
    }>): void;
    getPixelSize(): {
        width: number;
        height: number;
    };
    getPattern(id: string): ImagePosition | undefined | null;
    bind(context: Context): void;
    _updatePatternAtlas(): void;
    beginFrame(): void;
    dispatchRenderCallbacks(ids: Array<string>): void;
}
export default ImageManager;
//# sourceMappingURL=image_manager.d.ts.map