import { A } from "ts-toolbelt"; export declare type SelectKeys = { [K in keyof O]: { 1: K; 0: never; }[A.Is]; }[keyof O]; export declare type FunctionKeysOf = SelectKeys any>; export declare type FunctionAt> = (...args: Parameters) => ReturnType; export declare type OverrideFunction> = (this: S, oldFn: FunctionAt, ...args: Parameters) => ReturnType; export declare function applyReplacement>(self: S, target: T, key: K, newFn: OverrideFunction): void; export declare type OverrideFunctions = { [K in FunctionKeysOf]?: OverrideFunction; }; export declare function applyReplacements(self: S, target: T, replacements: OverrideFunctions): void; //# sourceMappingURL=apply-function-replacements.d.ts.map