import { SelectedPick, D2ModelSchemaBase } from "./inference"; import { D2ApiResponse, D2ModelSchemasBase, D2ApiDefinitionBase } from "./common"; import { D2ApiGeneric } from "./d2Api"; import { Selector } from "./inference"; interface Schemas { user: D2ModelSchemaBase; extra: Record; } export interface SchemasBase { user: D2ModelSchemas["users"]; extra: { dataSet: D2ModelSchemas["dataSets"]; program: D2ModelSchemas["programs"]; }; } declare type ExtraModelAttributes = { authorities: string[]; settings: Settings; } & { [K in keyof SchemasE["extra"]]: Array; }; declare type ExtraProperties = keyof ExtraModelAttributes; declare type RemovedProperties = "href"; export interface Settings { keyMessageSmsNotification: boolean; keyDbLocale: string; keyStyle: string; keyUiLocale: string; keyAnalysisDisplayProperty: string; keyMessageEmailNotification: boolean; } interface MeSchema { name: "me"; model: Omit & ExtraModelAttributes; fields: Omit & ExtraModelAttributes; fieldPresets: { $all: SchemasE["user"]["fieldPresets"]["$all"] & ExtraProperties; $identifiable: SchemasE["user"]["fieldPresets"]["$identifiable"] & ExtraProperties; $nameable: SchemasE["user"]["fieldPresets"]["$nameable"] & ExtraProperties; $persisted: SchemasE["user"]["fieldPresets"]["$persisted"] & ExtraProperties; $owner: SchemasE["user"]["fieldPresets"]["$owner"] & ExtraProperties; }; } interface GetOptions { fields: Selector>; } export declare class CurrentUser> { private api; constructor(api: D2ApiGeneric); get, User = SelectedPick, Options["fields"]>>(options: Options): D2ApiResponse; } export {};