import { DefaultMeta } from "../types/DefaultMeta";
/**
 * Generic intersection type for result objects to include metadata as a non-enumerable property.
 * @example
 * ```typescript
 * const result = await client.watchdogstats();
 * console.log(result);
 * // {watchdog_lastMinute: 1, staff_rollingDaily: 2609, watchdog_total: 5591714, watchdog_rollingDaily: 4213, …}
 * console.log(result.meta)
 * // {success: true}
 * ```
 */
export type ResultObject<T extends Record<string, unknown>, K extends (keyof T)[], B extends true | void = void> = (B extends true ? T : T[K[number]] extends string | number | boolean | undefined ? OmitRespectingRemapping<T, K[number]> : T[K[number]]) & {
    meta: B extends true ? DefaultMeta : (T[K[number]] extends string | number | boolean | undefined ? Pick<T, K[number]> : OmitRespectingRemapping<T, K[number]>) & DefaultMeta;
};
/** @hidden */
export declare function getResultObject<T, K extends (keyof T)[], B extends true | void = void>(response: T & DefaultMeta, keys?: K): ResultObject<T & Record<string, unknown>, K, B>;
