import { IHttpClient } from "./IHttpClient";
import { Endpoint } from "./Endpoint";
import { IShortUserDesc } from "./IUser";
/**
 * Provides properties and methods for obtaining information about a {@link User | user} who has access to
 * the {@link Project | project}.
 */
export declare class Member extends Endpoint {
    private _data;
    /**
     * @param data - Raw member data received from the server. For more information, see
     *   {@link https://cloud.opendesign.com/docs//pages/server/api.html#Project | Open Cloud Projects API}.
     * @param projectId - Owner project ID.
     * @param httpClient - HTTP client instance used to send requests to the REST API server.
     */
    constructor(data: any, projectId: string, httpClient: IHttpClient);
    /**
     * Raw member data received from the server. For more information, see
     * {@link https://cloud.opendesign.com/docs//pages/server/api.html#Project | Open Cloud Projects API}.
     *
     * @readonly
     */
    get data(): any;
    private set data(value);
    /**
     * Unique member ID.
     *
     * @readonly
     */
    get id(): string;
    /**
     * Member role name in the project. See {@link Project.getRoles | Project.getRoles()} for list of
     * project roles.
     */
    get role(): string;
    set role(value: string);
    /**
     * Member type. Can be `owner` or `user`.
     *
     * @readonly
     */
    get type(): string;
    /**
     * User information.
     *
     * @readonly
     */
    get user(): IShortUserDesc;
    /**
     * Reloads member data from the server.
     */
    checkout(): Promise<this>;
    /**
     * Updates member data on the server.
     *
     * @param data - Raw member data. For more information, see
     *   {@link https://cloud.opendesign.com/docs//pages/server/api.html#Project | Open Cloud Projects API}.
     */
    update(data: any): Promise<this>;
    /**
     * Removes a member from the project.
     *
     * @returns Returns the raw data of a deleted member. For more information, see
     *   {@link https://cloud.opendesign.com/docs//pages/server/api.html#Project | Open Cloud Projects API}.
     */
    delete(): Promise<any>;
    /**
     * Saves member properties changes to the server. Call this method to update member data on the server
     * after any property changes.
     */
    save(): Promise<this>;
}
