import { IUser } from '@awhere/interfaces';
import { IFindOptions } from '../IdentityMixin';
import PrototypeBase from '../PrototypeBase';
import { Watcher } from '../Watcher';
export default class User extends PrototypeBase implements IUser {
    static generateId(): string;
    static watch(): Promise<Watcher>;
    private static basePath;
    static fromId(id: string): Promise<User>;
    static find(findOptions?: string | IFindOptions): Promise<import("axios").AxiosResponse<any, any>>;
    static create(data: undefined | string | IUser): Promise<import("axios").AxiosResponse<any, any>>;
    static update(id: string, data: IUser): Promise<import("axios").AxiosResponse<any, any>>;
    static delete(id: string): Promise<import("axios").AxiosResponse<any, any>>;
    static restore(id: string): Promise<import("axios").AxiosResponse<any, any>>;
    save(): Promise<any>;
    delete(): Promise<any>;
    restore(): Promise<any>;
    private _username;
    get username(): string;
    set username(value: string);
    private _firstName?;
    get firstName(): IUser['firstName'];
    set firstName(value: IUser['firstName']);
    private _lastName?;
    get lastName(): IUser['lastName'];
    set lastName(value: IUser['lastName']);
    private _middleName?;
    get middleName(): IUser['middleName'];
    set middleName(value: IUser['middleName']);
    private _displayName?;
    get displayName(): IUser['displayName'];
    set displayName(v: IUser['displayName']);
    private _email?;
    get email(): IUser['email'];
    set email(value: IUser['email']);
    private _password?;
    get password(): IUser['password'];
    set password(value: IUser['password']);
    private _picture?;
    get picture(): IUser['picture'];
    set picture(value: IUser['picture']);
    private _provider;
    get provider(): IUser['provider'];
    set provider(value: IUser['provider']);
    private _role;
    get role(): IUser['role'];
    set role(value: IUser['role']);
    private _groups;
    get groups(): IUser['groups'];
    set groups(value: IUser['groups']);
    get pictureUrl(): string | undefined;
    get fullName(): string | undefined;
    constructor(props?: IUser);
}
