/** Extract from a type T all getter-like method keys, optionally filtered by those returning type U */ export declare type Getters = keyof T & { [P in keyof T]: T[P] extends () => U ? P : never; }[keyof T]; /** Extract all methods from a type T */ export declare type Methods = keyof T & { [P in keyof T]: T[P] extends (...args: any[]) => any ? P : never; }[keyof T]; export declare type RequireAtLeastOne = { [K in keyof T]-?: Required> & Partial>>; }[keyof T];