import { SObjectDefinition, Schema } from './schema'; import { StringKeys } from './util'; /** * */ type FieldPath_3 = '*' | Array>; type FieldPath_2 = '*' | StringKeys | { [K in StringKeys]?: '*' | Array>>; }; type FieldPath_1 = '*' | StringKeys | { [K in StringKeys]?: '*' | Array>>; }; type FieldPathSpecifier_ = '*' | StringKeys | { [K in StringKeys]?: '*' | Array>>; }; export type FieldPathSpecifier = FieldPathSpecifier_; export type FieldProjectionConfigObject = { [name: string]: 1 | true | FieldProjectionConfig | undefined; }; export type FieldProjectionConfig = string | null | FieldProjectionConfigObject; export type FieldPathScopedProjection> = FPS extends { [name: string]: any; } ? { [K in StringKeys]: FPS[K] extends '*' ? '*' : FPS[K] extends Array ? U extends FieldProjectionConfig ? U : never : never; } : FPS extends string ? FPS : never; export {};