import { Nullable, NullableResultPromise } from "../../base-types";
import { IExtendedContentHubClient } from "../../clients/extended-client";
import { Entity, IEntity } from "../base/entity";
import { EntityConstructionArgs } from "../base/entity-construction-args";
import { IUserPolicy } from "../policies/user-policy";
import { IEntityLoadConfiguration } from "../querying/entity-load-configuration";
import { IUserGroupConfiguration } from "./user-group-configuration";
import { IUserProfile } from "./user-profile";
export interface IUser extends IEntity {
    username: Nullable<string>;
    userGroupConfiguration: Nullable<IUserGroupConfiguration>;
    getUserProfileAsync(loadConfiguration?: Nullable<IEntityLoadConfiguration>): NullableResultPromise<IUserProfile>;
    getUserGroupIdsAsync(): NullableResultPromise<Array<number>>;
    getUserPolicyAsync(): NullableResultPromise<IUserPolicy>;
}
export declare class User extends Entity implements IUser {
    get username(): Nullable<string>;
    set username(value: Nullable<string>);
    get userGroupConfiguration(): Nullable<IUserGroupConfiguration>;
    constructor(client: IExtendedContentHubClient, args: EntityConstructionArgs);
    getUserProfileAsync(loadConfiguration?: Nullable<IEntityLoadConfiguration>): NullableResultPromise<IUserProfile>;
    getUserGroupIdsAsync(): NullableResultPromise<Array<number>>;
    getUserPolicyAsync(): NullableResultPromise<IUserPolicy>;
}
