export interface StampCell { l: number; dx: number; dy: number; t: number; } export interface Stamp { w: number; h: number; cells: StampCell[]; door?: { dx: number; dy: number; }; count: number; } export type StampCategory = 'house' | 'tree' | 'prop'; export declare function getStamps(tilesetId: number, category: StampCategory): Stamp[]; export declare function hasStamps(tilesetId: number, category: StampCategory): boolean; /** Pick a stamp for (tileset, category), or null if none exist. */ export declare function pickStamp(tilesetId: number, category: StampCategory, rng: { nextInt(a: number, b: number): number; }): Stamp | null; /** * Write a stamp's cells onto the map at top-left (x, y). Cells outside the map * are skipped. Returns the absolute door tile position for houses (or null). * Layer index in cells is the MV tile layer (2 = upper1, 3 = upper2). */ export declare function stampObject(data: number[], width: number, height: number, x: number, y: number, stamp: Stamp): { door: { x: number; y: number; } | null; };