import { Cost, GameCommandEnum, GameConfigCountry, GameConfigLength, GameState, LandEnum, NextUseClergy, Rondel, SettlementRound } from './types';
export declare const FEATURE_LEN: number;
export type FeatureSpec = {
    featureLen: number;
    height: number;
    width: number;
    gridAnchor: number;
    maxPlayers: number;
    tileChannels: number;
    vocabCapacity: number;
    tile: {
        landOffset: number;
        landLen: number;
        erectionIdChannel: number;
        clergyOffset: number;
        clergyLen: number;
    };
    categorical: {
        name: string;
        tileChannel: number;
        capacity: number;
        vocab: string[];
    }[];
    offsets: {
        players: number[];
        frame: number;
        shared: number;
        playerResources: number;
        playerWonders: number;
        playerClergy: number;
        playerSettlements: number;
        playerGrid: number;
    };
    vocab: {
        erections: string[];
        buildings: string[];
        settlements: string[];
        lands: LandEnum[];
        commands: GameCommandEnum[];
        resources: (keyof Required<Cost>)[];
        rondelKeys: (keyof Omit<Rondel, 'pointingBefore'>)[];
        settlementRounds: SettlementRound[];
        nextUses: NextUseClergy[];
        lengths: GameConfigLength[];
        countries: GameConfigCountry[];
    };
};
export declare const featureSpec: FeatureSpec;
export declare const encode: (state: GameState, perspective?: number) => Float32Array;
