export interface PostRequestUser { addressLine1?: string | null; addressLine2?: string | null; city?: string | null; company?: string | null; confirmLocalPasswd: string; country?: string | null; email: `${string}@${string}.${string}`; fullName: string; gid?: number | null; localPasswd: string; newUser?: boolean | null; phoneNumber?: string | null; postalCode?: string | null; publicSshKey?: string | null; role: string; stateOrProvince?: string | null; tenantId: number; ucdn?: string | null; uid?: number | null; username: string; } interface PutRequestNotChangingPasswordUser { addressLine1?: string | null; addressLine2?: string | null; city?: string | null; company?: string | null; country?: string | null; email: `${string}@${string}.${string}`; fullName: string; gid?: number | null; newUser?: boolean | null; phoneNumber?: string | null; postalCode?: string | null; publicSshKey?: string | null; role: string; stateOrProvince?: string | null; tenantId: number; ucdn?: string | null; uid?: number | null; username: string; } export declare type PutRequestUser = PostRequestUser | PutRequestNotChangingPasswordUser; export declare type RequestUser = PutRequestUser | PostRequestUser; export interface ResponseUser { addressLine1: string | null; addressLine2: string | null; readonly changeLogCount: number; city: string | null; company: string | null; country: string | null; email: `${string}@${string}.${string}`; fullName: string; gid: number | null; readonly id: number; readonly lastAuthenticated: Date | null; readonly lastUpdated: Date; newUser: boolean | null; phoneNumber: string | null; postalCode: string | null; publicSshKey: string | null; readonly registrationSent: null | Date; role: string; stateOrProvince: string | null; tenant: string; tenantId: number; ucdn: string; uid: number | null; username: string; } export declare type User = RequestUser | ResponseUser; export interface ResponseCurrentUser { addressLine1: string | null; addressLine2: string | null; readonly changeLogCount: number; city: string | null; company: string | null; country: string | null; email: `${string}@${string}.${string}`; fullName: string; gid: number | null; readonly id: number; readonly lastAuthenticated: null | Date; readonly lastUpdated: Date; localUser: boolean; newUser: boolean; phoneNumber: string | null; postalCode: string | null; publicSshKey: string | null; readonly registrationSent: null | Date; role: string; stateOrProvince: string | null; tenant: string; tenantId: number; ucdn: string; uid: number | null; username: string; } export declare function userEmailIsValid(email: string): email is `${string}@${string}.${string}`; export interface RequestCurrentUser { addressLine1?: string | null; addressLine2?: string | null; city?: string | null; company?: string | null; country?: string | null; email: string; fullName: string; gid?: number | null; phoneNumber?: string | null; postalCode?: string | null; publicSshKey?: string | null; role: string; stateOrProvince?: string | null; tenantId: number; ucdn?: string | null; uid?: number | null; username: string; } export declare type CurrentUser = ResponseCurrentUser | RequestCurrentUser; export interface RequestRole { permissions?: Array | null; description: string; name: string; } export declare type PutResponseRole = RequestRole; export interface PostResponseRole extends PutResponseRole { readonly lastUpdated: Date; } export declare type ResponseRole = PutResponseRole | PostResponseRole; export declare type Role = RequestRole | ResponseRole; export interface RequestTenant { active: boolean; name: string; parentId: number; } export interface RequestTenantResponse extends RequestTenant { readonly id: number; readonly lastUpdated: Date; } interface ResponseTenantBase { active: boolean; readonly id: number; readonly lastUpdated: Date; name: string; } interface ResponseRootTenant extends ResponseTenantBase { active: true; name: "root"; parentId: null; } interface ResponseRegularTenant extends ResponseTenantBase { name: Exclude; parentId: number; } export declare type ResponseTenant = ResponseRootTenant | ResponseRegularTenant; export declare type Tenant = ResponseTenant | RequestTenant | RequestTenantResponse; export {};