import { IVssRestClientOptions } from "../Common/Context";
import { RestClientBase } from "../Common/RestClientBase";
import * as Management from "../Management/Management";
export declare class ManagementRestClient extends RestClientBase {
    constructor(options: IVssRestClientOptions);
    /**
     * During multi-org billing computation in primary scale unit(EUS21), this API is used to create billing snapshot for a specific org. Primary scale unit will call this API for each org in different scsle units to create billing snapshot. Data will be stored in the org specific partition DB -\> billing snapshot table. This is needed as customers will fetch billing data from their org specific partition DB.
     *
     * @param meterUsage -
     * @param plan -
     */
    createBillingSnapshot2(meterUsage: Management.MeterUsageForPlan, plan: Management.Plan): Promise<void>;
    /**
     * Get all billable committers details, including those not matched with a VSID.
     *
     * @param plan - The plan to query. Plans supported: CodeSecurity and SecretProtection. This is a mandatory parameter.
     * @param billingDate - The date to query, or if not provided, today
     */
    getBillableCommitterDetails2(plan: Management.Plan, billingDate?: Date): Promise<Management.BillableCommitterDetails[]>;
    /**
     * @param plan -
     */
    getLastMeterUsage2(plan: Management.Plan): Promise<Management.MeterUsageForPlan>;
    /**
     * Get commiters used when calculating billing information.
     *
     * @param plan - The plan to query. Plans supported: CodeSecurity and SecretProtection. This is a mandatory parameter.
     * @param billingDate - The date to query, or if not provided, today
     */
    getMeterUsage2(plan: Management.Plan, billingDate?: Date): Promise<Management.MeterUsageForPlan>;
    /**
     * Get the current status of Advanced Security for the organization
     *
     * @param includeAllProperties - When true, also determine if pushes are blocked if they contain secrets
     */
    getOrgEnablementStatus2(includeAllProperties?: boolean): Promise<Management.OrgEnablementSettings>;
    /**
     * Update the status of Advanced Security for the organization
     *
     * @param orgEnablementSettings - The new status
     */
    updateOrgEnablementStatus2(orgEnablementSettings: Management.OrgEnablementSettings): Promise<void>;
    /**
     * Estimate the pushers that would be added to the customer's usage if Advanced Security was enabled for this organization.
     *
     * @param plan - The plan to query.
     */
    getEstimatedBillablePushersDetailsForOrg2(plan?: Management.Plan): Promise<Management.MeterUsageEstimate>;
    /**
     * Get the current status of Advanced Security for a project
     *
     * @param project - Project ID or project name
     * @param includeAllProperties - When true, also determine if pushes are blocked if they contain secrets
     */
    getProjectEnablementStatus2(project: string, includeAllProperties?: boolean): Promise<Management.ProjectEnablementSettings>;
    /**
     * Update the status of Advanced Security for the project
     *
     * @param projectEnablementSettings - The new status
     * @param project - Project ID or project name
     */
    updateProjectEnablementStatus2(projectEnablementSettings: Management.ProjectEnablementSettings, project: string): Promise<void>;
    /**
     * Estimate the pushers that would be added to the customer's usage if Advanced Security was enabled for this project.
     *
     * @param project - Project ID or project name
     * @param plan -
     */
    getEstimatedBillablePushersDetailsForProject2(project: string, plan?: Management.Plan): Promise<Management.MeterUsageEstimate>;
    /**
     * Determines if Code Security, Secret Protection, and their features are enabled for the repository.
     *
     * @param project - Project ID or project name
     * @param repository - The name or ID of the repository
     * @param includeAllProperties - When true, will also determine if pushes are blocked when secrets are detected
     */
    getRepoEnablementStatus2(project: string, repository: string, includeAllProperties?: boolean): Promise<Management.RepoEnablementSettings>;
    /**
     * Update the enablement status of Code Security and Secret Protection, along with their respective features, for a given repository.
     *
     * @param savedAdvSecEnablementStatus - new status
     * @param project - Project ID or project name
     * @param repository - Name or ID of the repository
     */
    updateRepoAdvSecEnablementStatus2(savedAdvSecEnablementStatus: Management.RepoEnablementSettings, project: string, repository: string): Promise<void>;
    /**
     * Estimate the pushers that would be added to the customer's usage if Advanced Security was enabled for this repository.
     *
     * @param project - Project ID or project name
     * @param repository - The name or ID of the repository
     * @param plan - The plan to query.
     */
    getEstimatedBillableCommittersDetailsForRepo2(project: string, repository: string, plan?: Management.Plan): Promise<Management.MeterUsageEstimate>;
}
