// ------------------------------------------------------------------------------
//  Copyright (c) Microsoft Corporation.  All Rights Reserved.  Licensed under the MIT License.  See License in the project root for license information.
// ------------------------------------------------------------------------------

// **NOTE** This file was generated by a tool and any changes will be overwritten.


namespace Microsoft.Graph
{
    using System;
    using System.Collections.Generic;
    using System.IO;

    /// <summary>
    /// The interface IWorkbookFilterRequestBuilder.
    /// </summary>
    public partial interface IWorkbookFilterRequestBuilder : IEntityRequestBuilder
    {
        /// <summary>
        /// Builds the request.
        /// </summary>
        /// <returns>The built request.</returns>
        new IWorkbookFilterRequest Request();

        /// <summary>
        /// Builds the request.
        /// </summary>
        /// <param name="options">The query and header options for the request.</param>
        /// <returns>The built request.</returns>
        new IWorkbookFilterRequest Request(IEnumerable<Option> options);
    
        /// <summary>
        /// Gets the request builder for WorkbookFilterApply.
        /// </summary>
        /// <returns>The <see cref="IWorkbookFilterApplyRequestBuilder"/>.</returns>
        IWorkbookFilterApplyRequestBuilder Apply(
            WorkbookFilterCriteria criteria = null);

        /// <summary>
        /// Gets the request builder for WorkbookFilterApplyBottomItemsFilter.
        /// </summary>
        /// <returns>The <see cref="IWorkbookFilterApplyBottomItemsFilterRequestBuilder"/>.</returns>
        IWorkbookFilterApplyBottomItemsFilterRequestBuilder ApplyBottomItemsFilter(
            Int32 count);

        /// <summary>
        /// Gets the request builder for WorkbookFilterApplyBottomPercentFilter.
        /// </summary>
        /// <returns>The <see cref="IWorkbookFilterApplyBottomPercentFilterRequestBuilder"/>.</returns>
        IWorkbookFilterApplyBottomPercentFilterRequestBuilder ApplyBottomPercentFilter(
            Int32 percent);

        /// <summary>
        /// Gets the request builder for WorkbookFilterApplyCellColorFilter.
        /// </summary>
        /// <returns>The <see cref="IWorkbookFilterApplyCellColorFilterRequestBuilder"/>.</returns>
        IWorkbookFilterApplyCellColorFilterRequestBuilder ApplyCellColorFilter(
            string color = null);

        /// <summary>
        /// Gets the request builder for WorkbookFilterApplyCustomFilter.
        /// </summary>
        /// <returns>The <see cref="IWorkbookFilterApplyCustomFilterRequestBuilder"/>.</returns>
        IWorkbookFilterApplyCustomFilterRequestBuilder ApplyCustomFilter(
            string oper,
            string criteria1 = null,
            string criteria2 = null);

        /// <summary>
        /// Gets the request builder for WorkbookFilterApplyDynamicFilter.
        /// </summary>
        /// <returns>The <see cref="IWorkbookFilterApplyDynamicFilterRequestBuilder"/>.</returns>
        IWorkbookFilterApplyDynamicFilterRequestBuilder ApplyDynamicFilter(
            string criteria);

        /// <summary>
        /// Gets the request builder for WorkbookFilterApplyFontColorFilter.
        /// </summary>
        /// <returns>The <see cref="IWorkbookFilterApplyFontColorFilterRequestBuilder"/>.</returns>
        IWorkbookFilterApplyFontColorFilterRequestBuilder ApplyFontColorFilter(
            string color = null);

        /// <summary>
        /// Gets the request builder for WorkbookFilterApplyIconFilter.
        /// </summary>
        /// <returns>The <see cref="IWorkbookFilterApplyIconFilterRequestBuilder"/>.</returns>
        IWorkbookFilterApplyIconFilterRequestBuilder ApplyIconFilter(
            WorkbookIcon icon = null);

        /// <summary>
        /// Gets the request builder for WorkbookFilterApplyTopItemsFilter.
        /// </summary>
        /// <returns>The <see cref="IWorkbookFilterApplyTopItemsFilterRequestBuilder"/>.</returns>
        IWorkbookFilterApplyTopItemsFilterRequestBuilder ApplyTopItemsFilter(
            Int32 count);

        /// <summary>
        /// Gets the request builder for WorkbookFilterApplyTopPercentFilter.
        /// </summary>
        /// <returns>The <see cref="IWorkbookFilterApplyTopPercentFilterRequestBuilder"/>.</returns>
        IWorkbookFilterApplyTopPercentFilterRequestBuilder ApplyTopPercentFilter(
            Int32 percent);

        /// <summary>
        /// Gets the request builder for WorkbookFilterApplyValuesFilter.
        /// </summary>
        /// <returns>The <see cref="IWorkbookFilterApplyValuesFilterRequestBuilder"/>.</returns>
        IWorkbookFilterApplyValuesFilterRequestBuilder ApplyValuesFilter(
            Newtonsoft.Json.Linq.JToken values = null);

        /// <summary>
        /// Gets the request builder for WorkbookFilterClear.
        /// </summary>
        /// <returns>The <see cref="IWorkbookFilterClearRequestBuilder"/>.</returns>
        IWorkbookFilterClearRequestBuilder Clear();
    
    }
}
