import { type Profile } from '@microsoft/msgraph-beta-sdk/models/';
import { type AccountRequestBuilder } from './account/';
import { type AddressesRequestBuilder } from './addresses/';
import { type AnniversariesRequestBuilder } from './anniversaries/';
import { type AwardsRequestBuilder } from './awards/';
import { type CertificationsRequestBuilder } from './certifications/';
import { type EducationalActivitiesRequestBuilder } from './educationalActivities/';
import { type EmailsRequestBuilder } from './emails/';
import { type InterestsRequestBuilder } from './interests/';
import { type LanguagesRequestBuilder } from './languages/';
import { type NamesRequestBuilder } from './names/';
import { type NotesRequestBuilder } from './notes/';
import { type PatentsRequestBuilder } from './patents/';
import { type PhonesRequestBuilder } from './phones/';
import { type PositionsRequestBuilder } from './positions/';
import { type ProjectsRequestBuilder } from './projects/';
import { type PublicationsRequestBuilder } from './publications/';
import { type SkillsRequestBuilder } from './skills/';
import { type WebAccountsRequestBuilder } from './webAccounts/';
import { type WebsitesRequestBuilder } from './websites/';
import { type BaseRequestBuilder, type KeysToExcludeForNavigationMetadata, type NavigationMetadata, type RequestConfiguration, type RequestInformation, type RequestsMetadata } from '@microsoft/kiota-abstractions';
/**
 * Provides operations to manage the profile property of the microsoft.graph.user entity.
 */
export interface ProfileRequestBuilder extends BaseRequestBuilder<ProfileRequestBuilder> {
    /**
     * Provides operations to manage the account property of the microsoft.graph.profile entity.
     */
    get account(): AccountRequestBuilder;
    /**
     * Provides operations to manage the addresses property of the microsoft.graph.profile entity.
     */
    get addresses(): AddressesRequestBuilder;
    /**
     * Provides operations to manage the anniversaries property of the microsoft.graph.profile entity.
     */
    get anniversaries(): AnniversariesRequestBuilder;
    /**
     * Provides operations to manage the awards property of the microsoft.graph.profile entity.
     */
    get awards(): AwardsRequestBuilder;
    /**
     * Provides operations to manage the certifications property of the microsoft.graph.profile entity.
     */
    get certifications(): CertificationsRequestBuilder;
    /**
     * Provides operations to manage the educationalActivities property of the microsoft.graph.profile entity.
     */
    get educationalActivities(): EducationalActivitiesRequestBuilder;
    /**
     * Provides operations to manage the emails property of the microsoft.graph.profile entity.
     */
    get emails(): EmailsRequestBuilder;
    /**
     * Provides operations to manage the interests property of the microsoft.graph.profile entity.
     */
    get interests(): InterestsRequestBuilder;
    /**
     * Provides operations to manage the languages property of the microsoft.graph.profile entity.
     */
    get languages(): LanguagesRequestBuilder;
    /**
     * Provides operations to manage the names property of the microsoft.graph.profile entity.
     */
    get names(): NamesRequestBuilder;
    /**
     * Provides operations to manage the notes property of the microsoft.graph.profile entity.
     */
    get notes(): NotesRequestBuilder;
    /**
     * Provides operations to manage the patents property of the microsoft.graph.profile entity.
     */
    get patents(): PatentsRequestBuilder;
    /**
     * Provides operations to manage the phones property of the microsoft.graph.profile entity.
     */
    get phones(): PhonesRequestBuilder;
    /**
     * Provides operations to manage the positions property of the microsoft.graph.profile entity.
     */
    get positions(): PositionsRequestBuilder;
    /**
     * Provides operations to manage the projects property of the microsoft.graph.profile entity.
     */
    get projects(): ProjectsRequestBuilder;
    /**
     * Provides operations to manage the publications property of the microsoft.graph.profile entity.
     */
    get publications(): PublicationsRequestBuilder;
    /**
     * Provides operations to manage the skills property of the microsoft.graph.profile entity.
     */
    get skills(): SkillsRequestBuilder;
    /**
     * Provides operations to manage the webAccounts property of the microsoft.graph.profile entity.
     */
    get webAccounts(): WebAccountsRequestBuilder;
    /**
     * Provides operations to manage the websites property of the microsoft.graph.profile entity.
     */
    get websites(): WebsitesRequestBuilder;
    /**
     * Deletes a profile object from a user's account.
     * @param requestConfiguration Configuration for the request such as headers, query parameters, and middleware options.
     * @throws {ODataError} error when the service returns a 4XX or 5XX status code
     * @see {@link https://learn.microsoft.com/graph/api/profile-delete?view=graph-rest-1.0|Find more info here}
     */
    delete(requestConfiguration?: RequestConfiguration<object> | undefined): Promise<void>;
    /**
     * Retrieve the properties and relationships of a profile object for a given user. The profile resource exposes various rich properties that are descriptive of the user as relationships, for example, anniversaries and education activities. To get one of these navigation properties, use the corresponding GET method on that property. See the methods exposed by profile.
     * @param requestConfiguration Configuration for the request such as headers, query parameters, and middleware options.
     * @returns {Promise<Profile>}
     * @throws {ODataError} error when the service returns a 4XX or 5XX status code
     * @see {@link https://learn.microsoft.com/graph/api/profile-get?view=graph-rest-1.0|Find more info here}
     */
    get(requestConfiguration?: RequestConfiguration<ProfileRequestBuilderGetQueryParameters> | undefined): Promise<Profile | undefined>;
    /**
     * Update the navigation property profile in users
     * @param body The request body
     * @param requestConfiguration Configuration for the request such as headers, query parameters, and middleware options.
     * @returns {Promise<Profile>}
     * @throws {ODataError} error when the service returns a 4XX or 5XX status code
     */
    patch(body: Profile, requestConfiguration?: RequestConfiguration<object> | undefined): Promise<Profile | undefined>;
    /**
     * Deletes a profile object from a user's account.
     * @param requestConfiguration Configuration for the request such as headers, query parameters, and middleware options.
     * @returns {RequestInformation}
     */
    toDeleteRequestInformation(requestConfiguration?: RequestConfiguration<object> | undefined): RequestInformation;
    /**
     * Retrieve the properties and relationships of a profile object for a given user. The profile resource exposes various rich properties that are descriptive of the user as relationships, for example, anniversaries and education activities. To get one of these navigation properties, use the corresponding GET method on that property. See the methods exposed by profile.
     * @param requestConfiguration Configuration for the request such as headers, query parameters, and middleware options.
     * @returns {RequestInformation}
     */
    toGetRequestInformation(requestConfiguration?: RequestConfiguration<ProfileRequestBuilderGetQueryParameters> | undefined): RequestInformation;
    /**
     * Update the navigation property profile in users
     * @param body The request body
     * @param requestConfiguration Configuration for the request such as headers, query parameters, and middleware options.
     * @returns {RequestInformation}
     */
    toPatchRequestInformation(body: Profile, requestConfiguration?: RequestConfiguration<object> | undefined): RequestInformation;
}
/**
 * Retrieve the properties and relationships of a profile object for a given user. The profile resource exposes various rich properties that are descriptive of the user as relationships, for example, anniversaries and education activities. To get one of these navigation properties, use the corresponding GET method on that property. See the methods exposed by profile.
 */
export interface ProfileRequestBuilderGetQueryParameters {
    /**
     * Expand related entities
     */
    expand?: string[];
    /**
     * Select properties to be returned
     */
    select?: string[];
}
/**
 * Uri template for the request builder.
 */
export declare const ProfileRequestBuilderUriTemplate = "{+baseurl}/users/{user%2Did}/profile{?%24expand,%24select}";
/**
 * Metadata for all the navigation properties in the request builder.
 */
export declare const ProfileRequestBuilderNavigationMetadata: Record<Exclude<keyof ProfileRequestBuilder, KeysToExcludeForNavigationMetadata>, NavigationMetadata>;
/**
 * Metadata for all the requests in the request builder.
 */
export declare const ProfileRequestBuilderRequestsMetadata: RequestsMetadata;
//# sourceMappingURL=index.d.ts.map