import { DspGraph } from '../dsp-graph'; interface ProxyPath { keys: Array; parents: Array; } export declare const _proxyGetHandlerThrowIfKeyUnknown: (target: T, key: K, path?: ProxyPath) => boolean; type _AssignerSpecIndex = { Index: (k: string, context: C, path: ProxyPath) => AssignerSpec; indexConstructor: (context: C, path: ProxyPath) => T; }; type _AssignerSpecInterface = { Interface: { [K in keyof T]: AssignerSpec; }; }; type _AssignerSpecLiteral = { Literal: (context: C, path: ProxyPath) => T; }; type _AssignerSpecLiteralDefaultNull = { LiteralDefaultNull: (context: C, path: ProxyPath) => T; }; export type AssignerSpec = _AssignerSpecInterface | _AssignerSpecIndex | _AssignerSpecLiteral | _AssignerSpecLiteralDefaultNull; export declare const proxyAsAssigner: { (spec: AssignerSpec, _obj: Partial, context: C, _path?: ProxyPath): T; ensureValue(_obj: Partial, spec: AssignerSpec, context: C_1, _path?: ProxyPath, _recursionPath?: ProxyPath): T_1; Interface(a: { [K in keyof T_2]: AssignerSpec; }): _AssignerSpecInterface; Index(f: (k: string, context: C_3) => AssignerSpec, indexConstructor?: (context: C_3, path: ProxyPath) => any): _AssignerSpecIndex; Literal(f: (context: C_4, path: ProxyPath) => T_4): _AssignerSpecLiteral; LiteralDefaultNull(f: (context: C_5, path: ProxyPath) => T_5): _AssignerSpecLiteralDefaultNull; }; /** * Helper to declare namespace objects enforcing stricter access rules. * Specifically, it forbids : * - reading an unknown property. * - trying to overwrite an existing property. */ export declare const proxyAsProtectedIndex: (namespace: T, path?: ProxyPath) => T; /** * Helper to declare namespace objects enforcing stricter access rules. * Specifically, it forbids : * - reading an unknown property. * - writing to a property. */ export declare const proxyAsReadOnlyIndex: (namespace: T, path?: ProxyPath) => T; /** * Helper to declare namespace objects enforcing stricter access rules. * Specifically : * - it is read only * - it throws an error when trying to read an unknown property. * - allows to access properties starting with a number by prepending a `$`. * This is convenient to access portlets by their id without using * indexing syntax, for example : `namespace.$0` instead of `namespace['0']`. */ export declare const proxyAsReadOnlyIndexWithDollarKeys: (namespace: T, nodeId: DspGraph.NodeId, name: string) => T; export {};