stencil-quantum
Version:
Experience the quantum realm of stencil.
20 lines (19 loc) • 1.15 kB
TypeScript
import { QuantumSchema } from "./schema";
import { QuantumKeys } from "./keys";
import { ReactDecorator, ProvideDecorator, ContextDecorator, ObserveDecorator } from "../context";
import { ImplementDecorator } from "../context/implement";
export interface EntangleOptions {
namespace?: string;
}
export declare class Entanglement<T extends QuantumSchema> {
keys: QuantumKeys<T>;
static uid: number;
constructor(schema: T, opts?: EntangleOptions);
get<K extends keyof QuantumKeys<T>>(key: K): QuantumKeys<T>[K];
Provide<K extends keyof QuantumKeys<T>>(key: K): ProvideDecorator<Entanglement<T>, K>;
Context<K extends keyof QuantumKeys<T>>(key: K): ContextDecorator<Entanglement<T>, K>;
Observe<K extends keyof QuantumKeys<T>>(key: K): ObserveDecorator<Entanglement<T>, K>;
React<K extends keyof QuantumKeys<T>, Q extends Entanglement<any>, QK extends keyof Q["keys"]>(key: K, target: Q, targetKey: QK): ReactDecorator<Entanglement<T>, K, Q, QK>;
Implement<K extends keyof QuantumKeys<T>>(key: K): ImplementDecorator<Entanglement<T>, K>;
Action<K extends keyof QuantumKeys<T>>(key: K): ContextDecorator<Entanglement<T>, K>;
}