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 npc.
 */
export declare class NpcConfig {
    gameId: number;
    name: string | null;
    animations: {
        stand: number;
        walk: number;
        turnAround: number;
        turnRight: number;
        turnLeft: number;
    };
    options?: string[];
    minimapVisible: boolean;
    combatLevel: number;
    headIcon: number;
    clickable: boolean;
    turnDegrees: number;
    varbitId: number;
    settingId: number;
    parentId?: number;
    childrenIds?: number[];
    /**
     * 3d modelling information for this npc.
     */
    model: {
        models?: number[];
        headModels?: number[];
    };
    /**
     * Additional rendering details.
     */
    rendering: {
        boundary: number;
        sizeX: number;
        sizeY: number;
        renderPriority: boolean;
    };
}
/**
 * Controls files within the NPC Archive of the configuration index.
 */
export declare class NpcStore {
    private configStore;
    /**
     * The NPC Archive, containing details about every game NPC.
     */
    readonly npcArchive: Archive;
    private readonly children;
    constructor(configStore: ConfigStore);
    /**
     * Fetches the NpcConfig object for the specified npc game id.
     * @param npcId The game id of the npc to find.
     */
    getNpc(npcId: number): NpcConfig | null;
    /**
     * Parses a raw npc data file into a readable NpcConfig object.
     * @param npcFile The raw file-store npc data.
     */
    decodeNpcFile(npcFile: FileData): NpcConfig;
    /**
     * Decodes every npc file within the npc archive and returns
     * the resulting NpcConfig array.
     */
    decodeNpcStore(): NpcConfig[];
}
