import { type SharePointRestoreSession, type SharePointRestoreSessionCollectionResponse } from '@microsoft/msgraph-beta-sdk/models/index.js';
import { type CountRequestBuilder } from './count/index.js';
import { type SharePointRestoreSessionItemRequestBuilder } from './item/index.js';
import { type BaseRequestBuilder, type KeysToExcludeForNavigationMetadata, type NavigationMetadata, type RequestConfiguration, type RequestInformation, type RequestsMetadata } from '@microsoft/kiota-abstractions';
/**
 * Provides operations to manage the sharePointRestoreSessions property of the microsoft.graph.backupRestoreRoot entity.
 */
export interface SharePointRestoreSessionsRequestBuilder extends BaseRequestBuilder<SharePointRestoreSessionsRequestBuilder> {
    /**
     * Provides operations to count the resources in the collection.
     */
    get count(): CountRequestBuilder;
    /**
     * Provides operations to manage the sharePointRestoreSessions property of the microsoft.graph.backupRestoreRoot entity.
     * @param sharePointRestoreSessionId The unique identifier of sharePointRestoreSession
     * @returns {SharePointRestoreSessionItemRequestBuilder}
     */
    bySharePointRestoreSessionId(sharePointRestoreSessionId: string): SharePointRestoreSessionItemRequestBuilder;
    /**
     * The list of SharePoint restore sessions available in the tenant.
     * @param requestConfiguration Configuration for the request such as headers, query parameters, and middleware options.
     * @returns {Promise<SharePointRestoreSessionCollectionResponse>}
     * @throws {ODataError} error when the service returns a 4XX or 5XX status code
     */
    get(requestConfiguration?: RequestConfiguration<SharePointRestoreSessionsRequestBuilderGetQueryParameters> | undefined): Promise<SharePointRestoreSessionCollectionResponse | undefined>;
    /**
     * Create a new sharePointRestoreSession object. To create a granular restore session, granular site restore artifacts must be present in the payload. A request can't include both granularSiteRestoreArtifact and siteRestoreArtifact in the same create or update request. If no payload is provided when you create the restore session, the request creates an empty standard restore session by default.
     * @param body The request body
     * @param requestConfiguration Configuration for the request such as headers, query parameters, and middleware options.
     * @returns {Promise<SharePointRestoreSession>}
     * @throws {ODataError} error when the service returns a 4XX or 5XX status code
     * @see {@link https://learn.microsoft.com/graph/api/backuprestoreroot-post-sharepointrestoresessions?view=graph-rest-beta|Find more info here}
     */
    post(body: SharePointRestoreSession, requestConfiguration?: RequestConfiguration<object> | undefined): Promise<SharePointRestoreSession | undefined>;
    /**
     * The list of SharePoint restore sessions available in the tenant.
     * @param requestConfiguration Configuration for the request such as headers, query parameters, and middleware options.
     * @returns {RequestInformation}
     */
    toGetRequestInformation(requestConfiguration?: RequestConfiguration<SharePointRestoreSessionsRequestBuilderGetQueryParameters> | undefined): RequestInformation;
    /**
     * Create a new sharePointRestoreSession object. To create a granular restore session, granular site restore artifacts must be present in the payload. A request can't include both granularSiteRestoreArtifact and siteRestoreArtifact in the same create or update request. If no payload is provided when you create the restore session, the request creates an empty standard restore session by default.
     * @param body The request body
     * @param requestConfiguration Configuration for the request such as headers, query parameters, and middleware options.
     * @returns {RequestInformation}
     */
    toPostRequestInformation(body: SharePointRestoreSession, requestConfiguration?: RequestConfiguration<object> | undefined): RequestInformation;
}
/**
 * The list of SharePoint restore sessions available in the tenant.
 */
export interface SharePointRestoreSessionsRequestBuilderGetQueryParameters {
    /**
     * Include count of items
     */
    count?: boolean;
    /**
     * Expand related entities
     */
    expand?: string[];
    /**
     * Filter items by property values
     */
    filter?: string;
    /**
     * Order items by property values
     */
    orderby?: string[];
    /**
     * Search items by search phrases
     */
    search?: string;
    /**
     * Select properties to be returned
     */
    select?: string[];
    /**
     * Skip the first n items
     */
    skip?: number;
    /**
     * Show only the first n items
     */
    top?: number;
}
/**
 * Uri template for the request builder.
 */
export declare const SharePointRestoreSessionsRequestBuilderUriTemplate = "{+baseurl}/solutions/backupRestore/sharePointRestoreSessions{?%24count,%24expand,%24filter,%24orderby,%24search,%24select,%24skip,%24top}";
/**
 * Metadata for all the navigation properties in the request builder.
 */
export declare const SharePointRestoreSessionsRequestBuilderNavigationMetadata: Record<Exclude<keyof SharePointRestoreSessionsRequestBuilder, KeysToExcludeForNavigationMetadata>, NavigationMetadata>;
/**
 * Metadata for all the requests in the request builder.
 */
export declare const SharePointRestoreSessionsRequestBuilderRequestsMetadata: RequestsMetadata;
//# sourceMappingURL=index.d.ts.map