import type { Archive } from '../../archive';
import type { ConfigStore } from '../config-store';
import type { FileData } from '../../file-data';
/**
 * Contains game client need-to-know level information about a single game object.
 */
export declare class ObjectConfig {
    gameId: number;
    name: string | null;
    solid: boolean;
    nonWalkable: boolean;
    hasOptions: boolean;
    options: string[];
    walkable: boolean;
    configChangeDest?: number[];
    configId: number;
    varbitId: number;
    supportsItems: boolean;
    /**
     * 3d modelling information for this object.
     */
    model: {
        models?: number[];
    };
    /**
     * Additional rendering details.
     */
    rendering: {
        objectModels?: number[];
        objectModelTypes?: number[];
        ambient: number;
        contrast: number;
        recolorToReplace?: number[];
        recolorToFind?: number[];
        rotated: boolean;
        castsShadow: boolean;
        modelSizeX: number;
        modelSizeY: number;
        modelSizeHeight: number;
        mapSceneID: number;
        obstructsGround: boolean;
        hollow: boolean;
        adjustToTerrain: boolean;
        nonFlatShading: boolean;
        animationId: number;
        face: number;
        translateX: number;
        translateY: number;
        translateLevel: number;
        sizeX: number;
        sizeY: number;
    };
    icon?: number;
    wall: boolean;
}
/**
 * Controls files within the Object Archive of the configuration index.
 */
export declare class ObjectStore {
    private configStore;
    /**
     * The Object Archive, containing details about every game object.
     */
    readonly objectArchive: Archive;
    constructor(configStore: ConfigStore);
    /**
     * Fetches the ObjectConfig object for the specified object game id.
     * @param objectId The game id of the object to find.
     */
    getObject(objectId: number): ObjectConfig | null;
    /**
     * Parses a raw game object data file into a readable ObjectConfig object.
     * @param objectFile The raw file-store game object data.
     */
    decodeObjectFile(objectFile: FileData): ObjectConfig;
    /**
     * Decodes every object file within the object archive and returns
     * the resulting ObjectConfig array.
     */
    decodeObjectStore(): ObjectConfig[];
}
