export type BoolOnly = Pick; export type GivenTypeOnly = Pick; declare global { interface T extends Object { $$: { readonly [P in keyof T]-?: Ref; }; } } export declare function refs(owner: O): { readonly [P in keyof O]-?: Ref; }; export declare function toggleRefs(owner: O): { readonly [P in keyof BoolOnly]: ToggleRef; }; export declare function customToggleRefs(owner: O, value1: T, value2: T): { readonly [P in keyof GivenTypeOnly]: ToggleRef; }; export declare class Ref { readonly owner: any; readonly name: string; readonly index: number; constructor(owner: any, name: string, index?: number); get variable(): T; set variable(value: T); nonReactively(): T; signalling(): T; nonSignalling(): T; static sameRefs(v1: Ref, v2: Ref): boolean; static similarRefs(v1: Ref, v2: Ref): boolean; } export declare class ToggleRef extends Ref { readonly valueOn: T; readonly valueOff: T; constructor(owner: any, name: string, valueOn: T, valueOff: T); toggle(): void; }