type AppendDotPathSegment = TDotPath extends "" ? TSegment : `${TDotPath}.${TSegment}`; type AnyFunction = (...args: any[]) => any; type Primitives = null | undefined | string | number | boolean | symbol | bigint | AnyFunction; type AllObjDotPaths = TObj extends Primitives | unknown[] ? TDotPath : { [P in keyof TObj]: P extends string ? AppendDotPathSegment | AllObjDotPaths> : TDotPath; }[keyof TObj]; type RecursiveOmitNested = TObj extends Primitives | unknown[] ? TObj : { [P in keyof TObj as P extends string ? AppendDotPathSegment extends TOmitPath ? never : P : never]: P extends string ? RecursiveOmitNested> : TObj[P]; }; type OnlyProcedures = TProceduresInstance extends AnyFunction ? TProceduresInstance : { [P in keyof TProceduresInstance as OnlyProcedures extends Exclude | Record ? never : P]: OnlyProcedures; }; export type OmittableProcedures = AllObjDotPaths>; export type ProceduresFromInstance = RecursiveOmitNested, TOmitPaths>; type ProceduresFromInstanceConfig = { omit?: readonly (TUnknownOmitPaths | OmittableProcedures)[]; }; export declare const proceduresFromInstance: (proceduresInstance: TProceduresInstance, config?: ProceduresFromInstanceConfig) => RecursiveOmitNested, TUnknownOmitPaths, "">; export {};