import type { TextureOptionClasses } from './TextureFactory.js';
import type { TileSetOptions } from './TileSet.js';
export type TextureSource = HTMLImageElement | HTMLCanvasElement | HTMLVideoElement;
type FrameBasedAnimationsTimingData = {
    duration: number;
    frameRate?: never;
} | {
    duration?: never;
    frameRate: number;
};
export type FrameBasedAnimationsDataByTileIds = FrameBasedAnimationsTimingData & {
    tileIds: number[];
};
export type FrameBasedAnimationsDataByTileCount = FrameBasedAnimationsTimingData & {
    firstTileId: number;
    tileCount: number;
};
export type FrameBasedAnimationsDataByAtlas = FrameBasedAnimationsTimingData & {
    frameNameQuery: string;
};
export type FrameBasedAnimationsData = FrameBasedAnimationsDataByTileIds | FrameBasedAnimationsDataByTileCount | FrameBasedAnimationsDataByAtlas;
export type FrameBasedAnimationsDataMap = Record<string, FrameBasedAnimationsData>;
export interface TextureResourceData {
    imageUrl?: string;
    overrideImageUrl?: string;
    atlasUrl?: string;
    tileSet?: TileSetOptions;
    texture?: TextureOptionClasses[];
    frameBasedAnimations?: FrameBasedAnimationsDataMap;
}
export interface TextureStoreData {
    defaultTextureClasses: TextureOptionClasses[];
    items: Record<string, TextureResourceData>;
}
export {};
//# sourceMappingURL=types.d.ts.map