import { ByteBuffer } from '@runejs/common';
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 item.
 */
export declare class ItemConfig {
    gameId: number;
    name: string | null;
    stackable?: boolean;
    value: number;
    members?: boolean;
    worldOptions?: string[];
    widgetOptions?: string[];
    tradable?: boolean;
    teamId?: number;
    replacedColors?: [number, number][];
    replacedTextures?: [number, number][];
    bankNoteId?: number;
    bankNoteTemplate?: number;
    stackableAmounts?: number[];
    stackableIds?: number[];
    /**
     * 2d modelling information for this item.
     */
    model2d: {
        widgetModel?: number;
        zoom?: number;
        rotationX?: number;
        rotationY?: number;
        rotationZ?: number;
        offsetX?: number;
        offsetY?: number;
    };
    /**
     * 3d modelling information for this item.
     */
    model3d: {
        maleModels: [number, number, number];
        maleHeadModels: [number, number];
        maleModelOffset?: number;
        femaleModels: [number, number, number];
        femaleHeadModels: [number, number];
        femaleModelOffset?: number;
    };
    /**
     * Additional rendering details.
     */
    rendering: {
        resizeX?: number;
        resizeY?: number;
        resizeZ?: number;
        ambient?: number;
        contrast?: number;
    };
}
/**
 * Controls files within the Item Archive of the configuration index.
 */
export declare class ItemStore {
    private configStore;
    /**
     * The Item Archive, containing details about every game item.
     */
    readonly itemArchive: Archive;
    constructor(configStore: ConfigStore);
    /**
     * Fetches the ItemConfig object for the specified item game id.
     * @param itemId The game id of the item to find.
     */
    getItem(itemId: number): ItemConfig | null;
    encodeItemFile(item: ItemConfig): ByteBuffer;
    /**
     * Parses a raw item data file into a readable ItemConfig object.
     * @param itemFile The raw file-store item data.
     */
    decodeItemFile(itemFile: FileData): ItemConfig;
    /**
     * Decodes every item file within the item archive and returns
     * the resulting ItemConfig array.
     */
    decodeItemStore(): ItemConfig[];
}
