export interface BlockStateModelHolder { model: string; x?: number; y?: number; uvlock?: boolean; weight?: number; } type BlockStateDefinitionModel = BlockStateModelHolder | (BlockStateModelHolder & { weight?: number; })[]; export type BlockStateDefinitionVariant = { [variant: string]: T; }; export interface BlockStateDefinition { variants?: BlockStateDefinitionVariant; multipart?: { apply: BlockStateDefinitionModel; when?: { OR?: BlockStateDefinitionVariant[]; } & BlockStateDefinitionVariant; }[]; } export type Vector = [number, number, number]; export declare const POSSIBLE_FACES: readonly ["south", "north", "east", "west", "up", "down"]; export type Faces = (typeof POSSIBLE_FACES)[number] | 'bottom'; export interface BlockModel { parent?: string; ambientocclusion?: boolean; display?: { Position?: { rotation?: Vector; translation?: Vector; scale?: Vector; }; }; textures?: { particle?: string; [texture: string]: string; }; elements: { from?: Vector; to?: Vector; rotation?: { origin?: Vector; axis?: 'x' | 'y' | 'z'; angle?: number; rescale?: boolean; }; shade?: boolean; faces?: { [face in Faces]: { uv?: [number, number, number, number]; texture?: string; cullface?: Faces; rotation?: number; tintindex?: number; }; }; }[]; } export interface BlockModelData { name: string; models: { options: { holder: BlockStateModelHolder; weight: number; }[]; }[]; } export interface BlockModelOption { name: string; holders: BlockStateModelHolder[]; } export {};