@lithiumjs/angular
Version:
Reactive components made easy. Lithium provides utilities that enable seamless reactive state and event interactions for Angular components.
18 lines (17 loc) • 1.09 kB
TypeScript
import type { StringKey } from "../lang-utils";
export type AsyncSourceKey<T, K extends StringKey<T> = StringKey<T>> = `${K}$`;
export type ValidAsyncSourceKey<T, K extends StringKey<T> = StringKey<T>> = AsyncSourceKey<T, K> & StringKey<T>;
export declare namespace ComponentStateMetadata {
interface ManagedProperty<T, K extends StringKey<T> = StringKey<T>> {
key: K;
publicKey?: StringKey<T>;
asyncSource?: ValidAsyncSourceKey<T>;
}
type ManagedPropertyList<T> = ManagedProperty<T>[];
const MANAGED_PROPERTY_LIST_KEY = "MANAGED_PROPERTY_LIST_KEY";
function GetOwnManagedPropertyList<T>(target: Object): ManagedPropertyList<T>;
function GetInheritedManagedPropertyList<T>(target: Object): ManagedPropertyList<T>;
function SetManagedPropertyList<T>(target: Object, list: ManagedPropertyList<T>): void;
function AddManagedProperty<T>(target: Object, property: ManagedProperty<T>): void;
}
export declare function asyncStateKey<ComponentT, K extends StringKey<ComponentT> = StringKey<ComponentT>>(key: K): AsyncSourceKey<ComponentT, K>;