export type OptionsValue = { writable?: boolean; } & OptionsGeneral; export type OptionsGeneral = { configurable?: boolean; enumerable?: boolean; }; export type OptionsGetterSetter = OptionsGeneral; export type Options = OptionsValue | OptionsGeneral; export interface ObGetter extends OptionsGetterSetter { get(): any; } export interface ObSetter extends OptionsGetterSetter { set(...a: any[]): void; } export type ObGetterSetterMust = ObGetter & ObSetter; export type ObGetterSetter = ObGetterSetterMust | (ObGetter | ObSetter); export interface ObValue extends OptionsValue { value: any; } export type Ob = ObValue | ObGetterSetter; type Key = string | number | symbol; export declare const constructAttachToPrototype: (prototype: any | any[], defaultOptions?: Options) => (name: Key | Key[], func: Function | Ob) => Function | Ob; export declare const constructAttatchToPrototype: (prototype: any | any[], defaultOptions?: Options) => (name: Key | Key[], func: Function | Ob) => Function | Ob; export default constructAttachToPrototype; export declare const constructApplyToPrototype: (prototype: any | any[], defaultOptions?: Options) => (name: Key | Key[], func: Function | Ob) => Function | Ob;