UNPKG

stencil-quantum

Version:

Experience the quantum realm of stencil.

14 lines (13 loc) 769 B
import { QuantumSchema, QuantumType } from "./schema"; import { Entanglement, EntangleOptions } from "./entanglement"; export declare type QuantumKeys<T extends QuantumSchema> = { [K in keyof T]: QuantumKey<ResolveQuantumType<T, K>, Entanglement<T>>; }; export interface QuantumKey<T, C extends Entanglement<any>> extends EntangleOptions, QuantumType<T> { name: string; config: C; } declare type ResolveQuantumType<T extends QuantumSchema, K extends keyof T> = T[K] extends QuantumType<infer R> ? R : never; export declare type ContextType<T extends Entanglement<any>, K extends keyof T["keys"]> = ResolveQuantumKey<T["keys"][K], T>; export declare type ResolveQuantumKey<K, C extends Entanglement<any>> = K extends QuantumKey<infer T, C> ? T : never; export {};