export interface TypeName { __name: string; } /** * Utility type to get the element type of an array. */ export declare type Unpack = T extends (infer U)[] ? U : never; export declare type Data = Omit, { __name: K; }>, ('__name' | '__fileLocationUri' | '__load' | '__loadFile' | '__loadFileJson' | '__validate')>; /** * The value for a key is can only be the elements of the array whose __name property matches the type of that key. But if the key type is just string this won't narrow at all. */ export declare type KeyedByName = { [K in Unpack['__name']]: Data; };