export declare type GetterReturn = { [K: string]: T; }; /** * Creates a proxy that calls `cb` for every property accessed and returns its result. * * @param cb Called with the key of the property being accessed. */ export declare const Getter: (cb: (key: string) => T, target?: any) => GetterReturn; export declare type FluentCapture = (readonly ['get', string | symbol] | readonly ['apply', any[]])[] & { origin: Error; }; export declare const FluentCaptureSymbol: unique symbol; export interface FluentCaptureHandler { callMethod(name: string, args: unknown[], ops: FluentCapture): unknown; } export declare function FluentCapture(handler?: FluentCaptureHandler): any; export declare const applyFluentCapture: (capture: FluentCapture, target: any) => any;