import { PrimitiveBundle } from './bundle' ; public export interface KeyIndexMap { [ name ] : KeyIndex < string > ; } public export interface KeyIndex < T extends string > { readonly index : { [ P in T ] : number ; } ; readonly keys : T [ ] ; readonly size : number ; readonly last : number ; get ( key ) : number ; } public export interface FieldArrow { readonly offset : number ; get ( bundle ) : string ; } public export interface ScopeArrow < T extends string , R > { readonly map : { [ P in T ] : R ; } ; get ( key ) : R | undefined ; } public export interface DigitsArrow < T extends string > { readonly offset : number ; readonly index : KeyIndex < T > ; readonly values : number [ ] ; readonly size2 : number ; /**
     * Gets the field for the given plural category and number of integer digits.
     */ get ( bundle , key , digits ) : [ string , number ] ; } public export interface Vector1Arrow < T extends string > { /**
     * Indicates this vector exists in the bundle.
     */ exists ( bundle ) : boolean ; /**
     * Gets the field at the corresponding offset of the given key.
     */ get ( bundle , key ) : string ; /**
     * Full mapping of all keys to the corresponding fields.
     */ mapping ( bundle ) : { [ P in T ] : string ; } ; } public export interface Vector2Arrow < T extends string , S extends string > { /**
     * Indicates this vector exists in the bundle.
     */ exists ( bundle ) : boolean ; /**
     * Gets the field at the corresponding offset [key1, key2]
     */ get ( bundle , key1 , key2 ) : string ; /**
     * Full mapping of all keys to the corresponding fields.
     */ mapping ( bundle ) : { [ P in T ] : { [ Q in S ] : string ; } ; } ; } public export interface Vector3Arrow < T extends string , S extends string , U extends string > { /**
     * Indicates this vector exists in the bundle.
     */ exists ( bundle ) : boolean ; /**
     * Gets the field at the corresponding offset [key1, key2, key3]
     */ get ( bundle , key1 , key2 , key3 ) : string ; /**
     * Full mapping of all keys to the corresponding fields.
     */ mapping ( bundle ) : { [ P in T ] : { [ Q in S ] : { [ R in U ] : string ; } ; } ; } ; }