import { BaseAPIRequestFactory } from "../../datadog-api-client-common/baseapi";
import { Configuration } from "../../datadog-api-client-common/configuration";
import { RequestContext, ResponseContext } from "../../datadog-api-client-common/http/http";
import { CampaignResponse } from "../models/CampaignResponse";
import { CreateCampaignRequest } from "../models/CreateCampaignRequest";
import { CreateRuleRequest } from "../models/CreateRuleRequest";
import { CreateRuleResponse } from "../models/CreateRuleResponse";
import { ListCampaignsResponse } from "../models/ListCampaignsResponse";
import { ListRulesResponse } from "../models/ListRulesResponse";
import { ListRulesResponseDataItem } from "../models/ListRulesResponseDataItem";
import { ListScorecardScoresResponse } from "../models/ListScorecardScoresResponse";
import { ListScorecardsResponse } from "../models/ListScorecardsResponse";
import { OutcomesBatchRequest } from "../models/OutcomesBatchRequest";
import { OutcomesBatchResponse } from "../models/OutcomesBatchResponse";
import { OutcomesResponse } from "../models/OutcomesResponse";
import { OutcomesResponseDataItem } from "../models/OutcomesResponseDataItem";
import { ScorecardScoresAggregation } from "../models/ScorecardScoresAggregation";
import { UpdateCampaignRequest } from "../models/UpdateCampaignRequest";
import { UpdateOutcomesAsyncRequest } from "../models/UpdateOutcomesAsyncRequest";
import { UpdateRuleRequest } from "../models/UpdateRuleRequest";
import { UpdateRuleResponse } from "../models/UpdateRuleResponse";
export declare class ScorecardsApiRequestFactory extends BaseAPIRequestFactory {
    createScorecardCampaign(body: CreateCampaignRequest, _options?: Configuration): Promise<RequestContext>;
    createScorecardOutcomesBatch(body: OutcomesBatchRequest, _options?: Configuration): Promise<RequestContext>;
    createScorecardRule(body: CreateRuleRequest, _options?: Configuration): Promise<RequestContext>;
    deleteScorecardCampaign(campaignId: string, _options?: Configuration): Promise<RequestContext>;
    deleteScorecardRule(ruleId: string, _options?: Configuration): Promise<RequestContext>;
    getScorecardCampaign(campaignId: string, include?: string, includeMeta?: boolean, _options?: Configuration): Promise<RequestContext>;
    listScorecardCampaigns(pageLimit?: number, pageOffset?: number, filterCampaignName?: string, filterCampaignStatus?: string, filterCampaignOwner?: string, _options?: Configuration): Promise<RequestContext>;
    listScorecardOutcomes(pageSize?: number, pageOffset?: number, include?: string, fieldsOutcome?: string, fieldsRule?: string, filterOutcomeServiceName?: string, filterOutcomeState?: string, filterRuleEnabled?: boolean, filterRuleId?: string, filterRuleName?: string, _options?: Configuration): Promise<RequestContext>;
    listScorecardRules(pageSize?: number, pageOffset?: number, include?: string, filterRuleId?: string, filterRuleEnabled?: boolean, filterRuleCustom?: boolean, filterRuleName?: string, filterRuleDescription?: string, fieldsRule?: string, fieldsScorecard?: string, _options?: Configuration): Promise<RequestContext>;
    listScorecards(pageOffset?: number, pageSize?: number, filterScorecardId?: string, filterScorecardName?: string, filterScorecardDescription?: string, _options?: Configuration): Promise<RequestContext>;
    listScorecardScores(aggregation: ScorecardScoresAggregation, filterRuleId?: string, filterRuleName?: string, filterRuleLevel?: string, filterRuleScorecardId?: string, filterRuleIsCustom?: boolean, filterRuleIsEnabled?: boolean, sort?: string, pageOffset?: number, pageLimit?: number, _options?: Configuration): Promise<RequestContext>;
    updateScorecardCampaign(campaignId: string, body: UpdateCampaignRequest, _options?: Configuration): Promise<RequestContext>;
    updateScorecardOutcomes(body: UpdateOutcomesAsyncRequest, _options?: Configuration): Promise<RequestContext>;
    updateScorecardRule(ruleId: string, body: UpdateRuleRequest, _options?: Configuration): Promise<RequestContext>;
}
export declare class ScorecardsApiResponseProcessor {
    /**
     * Unwraps the actual response sent by the server from the response context and deserializes the response content
     * to the expected objects
     *
     * @params response Response returned by the server for a request to createScorecardCampaign
     * @throws ApiException if the response code was not in [200, 299]
     */
    createScorecardCampaign(response: ResponseContext): Promise<CampaignResponse>;
    /**
     * Unwraps the actual response sent by the server from the response context and deserializes the response content
     * to the expected objects
     *
     * @params response Response returned by the server for a request to createScorecardOutcomesBatch
     * @throws ApiException if the response code was not in [200, 299]
     */
    createScorecardOutcomesBatch(response: ResponseContext): Promise<OutcomesBatchResponse>;
    /**
     * Unwraps the actual response sent by the server from the response context and deserializes the response content
     * to the expected objects
     *
     * @params response Response returned by the server for a request to createScorecardRule
     * @throws ApiException if the response code was not in [200, 299]
     */
    createScorecardRule(response: ResponseContext): Promise<CreateRuleResponse>;
    /**
     * Unwraps the actual response sent by the server from the response context and deserializes the response content
     * to the expected objects
     *
     * @params response Response returned by the server for a request to deleteScorecardCampaign
     * @throws ApiException if the response code was not in [200, 299]
     */
    deleteScorecardCampaign(response: ResponseContext): Promise<void>;
    /**
     * Unwraps the actual response sent by the server from the response context and deserializes the response content
     * to the expected objects
     *
     * @params response Response returned by the server for a request to deleteScorecardRule
     * @throws ApiException if the response code was not in [200, 299]
     */
    deleteScorecardRule(response: ResponseContext): Promise<void>;
    /**
     * Unwraps the actual response sent by the server from the response context and deserializes the response content
     * to the expected objects
     *
     * @params response Response returned by the server for a request to getScorecardCampaign
     * @throws ApiException if the response code was not in [200, 299]
     */
    getScorecardCampaign(response: ResponseContext): Promise<CampaignResponse>;
    /**
     * Unwraps the actual response sent by the server from the response context and deserializes the response content
     * to the expected objects
     *
     * @params response Response returned by the server for a request to listScorecardCampaigns
     * @throws ApiException if the response code was not in [200, 299]
     */
    listScorecardCampaigns(response: ResponseContext): Promise<ListCampaignsResponse>;
    /**
     * Unwraps the actual response sent by the server from the response context and deserializes the response content
     * to the expected objects
     *
     * @params response Response returned by the server for a request to listScorecardOutcomes
     * @throws ApiException if the response code was not in [200, 299]
     */
    listScorecardOutcomes(response: ResponseContext): Promise<OutcomesResponse>;
    /**
     * Unwraps the actual response sent by the server from the response context and deserializes the response content
     * to the expected objects
     *
     * @params response Response returned by the server for a request to listScorecardRules
     * @throws ApiException if the response code was not in [200, 299]
     */
    listScorecardRules(response: ResponseContext): Promise<ListRulesResponse>;
    /**
     * Unwraps the actual response sent by the server from the response context and deserializes the response content
     * to the expected objects
     *
     * @params response Response returned by the server for a request to listScorecards
     * @throws ApiException if the response code was not in [200, 299]
     */
    listScorecards(response: ResponseContext): Promise<ListScorecardsResponse>;
    /**
     * Unwraps the actual response sent by the server from the response context and deserializes the response content
     * to the expected objects
     *
     * @params response Response returned by the server for a request to listScorecardScores
     * @throws ApiException if the response code was not in [200, 299]
     */
    listScorecardScores(response: ResponseContext): Promise<ListScorecardScoresResponse>;
    /**
     * Unwraps the actual response sent by the server from the response context and deserializes the response content
     * to the expected objects
     *
     * @params response Response returned by the server for a request to updateScorecardCampaign
     * @throws ApiException if the response code was not in [200, 299]
     */
    updateScorecardCampaign(response: ResponseContext): Promise<CampaignResponse>;
    /**
     * Unwraps the actual response sent by the server from the response context and deserializes the response content
     * to the expected objects
     *
     * @params response Response returned by the server for a request to updateScorecardOutcomes
     * @throws ApiException if the response code was not in [200, 299]
     */
    updateScorecardOutcomes(response: ResponseContext): Promise<void>;
    /**
     * Unwraps the actual response sent by the server from the response context and deserializes the response content
     * to the expected objects
     *
     * @params response Response returned by the server for a request to updateScorecardRule
     * @throws ApiException if the response code was not in [200, 299]
     */
    updateScorecardRule(response: ResponseContext): Promise<UpdateRuleResponse>;
}
export interface ScorecardsApiCreateScorecardCampaignRequest {
    /**
     * Campaign data.
     * @type CreateCampaignRequest
     */
    body: CreateCampaignRequest;
}
export interface ScorecardsApiCreateScorecardOutcomesBatchRequest {
    /**
     * Set of scorecard outcomes.
     * @type OutcomesBatchRequest
     */
    body: OutcomesBatchRequest;
}
export interface ScorecardsApiCreateScorecardRuleRequest {
    /**
     * Rule attributes.
     * @type CreateRuleRequest
     */
    body: CreateRuleRequest;
}
export interface ScorecardsApiDeleteScorecardCampaignRequest {
    /**
     * Campaign ID or key.
     * @type string
     */
    campaignId: string;
}
export interface ScorecardsApiDeleteScorecardRuleRequest {
    /**
     * The ID of the rule.
     * @type string
     */
    ruleId: string;
}
export interface ScorecardsApiGetScorecardCampaignRequest {
    /**
     * Campaign ID or key.
     * @type string
     */
    campaignId: string;
    /**
     * Include related data (for example, scores).
     * @type string
     */
    include?: string;
    /**
     * Include metadata (entity and rule counts).
     * @type boolean
     */
    includeMeta?: boolean;
}
export interface ScorecardsApiListScorecardCampaignsRequest {
    /**
     * Maximum number of campaigns to return.
     * @type number
     */
    pageLimit?: number;
    /**
     * Offset for pagination.
     * @type number
     */
    pageOffset?: number;
    /**
     * Filter campaigns by name (full-text search).
     * @type string
     */
    filterCampaignName?: string;
    /**
     * Filter campaigns by status.
     * @type string
     */
    filterCampaignStatus?: string;
    /**
     * Filter campaigns by owner UUID.
     * @type string
     */
    filterCampaignOwner?: string;
}
export interface ScorecardsApiListScorecardOutcomesRequest {
    /**
     * Size for a given page. The maximum allowed value is 100.
     * @type number
     */
    pageSize?: number;
    /**
     * Specific offset to use as the beginning of the returned page.
     * @type number
     */
    pageOffset?: number;
    /**
     * Include related rule details in the response.
     * @type string
     */
    include?: string;
    /**
     * Return only specified values in the outcome attributes.
     * @type string
     */
    fieldsOutcome?: string;
    /**
     * Return only specified values in the included rule details.
     * @type string
     */
    fieldsRule?: string;
    /**
     * Filter outcomes on a specific service name.
     * @type string
     */
    filterOutcomeServiceName?: string;
    /**
     * Filter outcomes by a specific state.
     * @type string
     */
    filterOutcomeState?: string;
    /**
     * Filter outcomes based on whether a rule is enabled or disabled.
     * @type boolean
     */
    filterRuleEnabled?: boolean;
    /**
     * Filter outcomes based on rule ID.
     * @type string
     */
    filterRuleId?: string;
    /**
     * Filter outcomes based on rule name.
     * @type string
     */
    filterRuleName?: string;
}
export interface ScorecardsApiListScorecardRulesRequest {
    /**
     * Size for a given page. The maximum allowed value is 100.
     * @type number
     */
    pageSize?: number;
    /**
     * Specific offset to use as the beginning of the returned page.
     * @type number
     */
    pageOffset?: number;
    /**
     * Include related scorecard details in the response.
     * @type string
     */
    include?: string;
    /**
     * Filter the rules on a rule ID.
     * @type string
     */
    filterRuleId?: string;
    /**
     * Filter for enabled rules only.
     * @type boolean
     */
    filterRuleEnabled?: boolean;
    /**
     * Filter for custom rules only.
     * @type boolean
     */
    filterRuleCustom?: boolean;
    /**
     * Filter rules on the rule name.
     * @type string
     */
    filterRuleName?: string;
    /**
     * Filter rules on the rule description.
     * @type string
     */
    filterRuleDescription?: string;
    /**
     * Return only specific fields in the response for rule attributes.
     * @type string
     */
    fieldsRule?: string;
    /**
     * Return only specific fields in the included response for scorecard attributes.
     * @type string
     */
    fieldsScorecard?: string;
}
export interface ScorecardsApiListScorecardsRequest {
    /**
     * Offset for pagination.
     * @type number
     */
    pageOffset?: number;
    /**
     * Maximum number of scorecards to return.
     * @type number
     */
    pageSize?: number;
    /**
     * Filter by scorecard ID.
     * @type string
     */
    filterScorecardId?: string;
    /**
     * Filter by scorecard name (partial match).
     * @type string
     */
    filterScorecardName?: string;
    /**
     * Filter by scorecard description (partial match).
     * @type string
     */
    filterScorecardDescription?: string;
}
export interface ScorecardsApiListScorecardScoresRequest {
    /**
     * The type of scores being requested.
     * @type ScorecardScoresAggregation
     */
    aggregation: ScorecardScoresAggregation;
    /**
     * Filter scores by rule ID(s), comma-separated.
     * @type string
     */
    filterRuleId?: string;
    /**
     * Filter scores by rule name.
     * @type string
     */
    filterRuleName?: string;
    /**
     * Filter scores by rule level(s), comma-separated.
     * @type string
     */
    filterRuleLevel?: string;
    /**
     * Filter scores by scorecard ID(s), comma-separated.
     * @type string
     */
    filterRuleScorecardId?: string;
    /**
     * Filter scores to show only custom rules.
     * @type boolean
     */
    filterRuleIsCustom?: boolean;
    /**
     * Filter scores to show only enabled rules.
     * @type boolean
     */
    filterRuleIsEnabled?: boolean;
    /**
     * Sort scores by field. Use a hyphen prefix for descending order. Options: score, numerator, denominator, total_pass, total_fail, total_skip, total_no_data.
     * @type string
     */
    sort?: string;
    /**
     * Offset for pagination.
     * @type number
     */
    pageOffset?: number;
    /**
     * Number of scores to return. Max is 1000.
     * @type number
     */
    pageLimit?: number;
}
export interface ScorecardsApiUpdateScorecardCampaignRequest {
    /**
     * Campaign ID or key.
     * @type string
     */
    campaignId: string;
    /**
     * Campaign data.
     * @type UpdateCampaignRequest
     */
    body: UpdateCampaignRequest;
}
export interface ScorecardsApiUpdateScorecardOutcomesRequest {
    /**
     * Set of scorecard outcomes.
     * @type UpdateOutcomesAsyncRequest
     */
    body: UpdateOutcomesAsyncRequest;
}
export interface ScorecardsApiUpdateScorecardRuleRequest {
    /**
     * The ID of the rule.
     * @type string
     */
    ruleId: string;
    /**
     * Rule attributes.
     * @type UpdateRuleRequest
     */
    body: UpdateRuleRequest;
}
export declare class ScorecardsApi {
    private requestFactory;
    private responseProcessor;
    private configuration;
    constructor(configuration: Configuration, requestFactory?: ScorecardsApiRequestFactory, responseProcessor?: ScorecardsApiResponseProcessor);
    /**
     * Creates a new scorecard campaign.
     * @param param The request object
     */
    createScorecardCampaign(param: ScorecardsApiCreateScorecardCampaignRequest, options?: Configuration): Promise<CampaignResponse>;
    /**
     * Sets multiple service-rule outcomes in a single batched request.
     * @param param The request object
     */
    createScorecardOutcomesBatch(param: ScorecardsApiCreateScorecardOutcomesBatchRequest, options?: Configuration): Promise<OutcomesBatchResponse>;
    /**
     * Creates a new rule.
     * @param param The request object
     */
    createScorecardRule(param: ScorecardsApiCreateScorecardRuleRequest, options?: Configuration): Promise<CreateRuleResponse>;
    /**
     * Deletes a single campaign by ID or key.
     * @param param The request object
     */
    deleteScorecardCampaign(param: ScorecardsApiDeleteScorecardCampaignRequest, options?: Configuration): Promise<void>;
    /**
     * Deletes a single rule.
     * @param param The request object
     */
    deleteScorecardRule(param: ScorecardsApiDeleteScorecardRuleRequest, options?: Configuration): Promise<void>;
    /**
     * Fetches a single campaign by ID or key.
     * @param param The request object
     */
    getScorecardCampaign(param: ScorecardsApiGetScorecardCampaignRequest, options?: Configuration): Promise<CampaignResponse>;
    /**
     * Fetches all scorecard campaigns.
     * @param param The request object
     */
    listScorecardCampaigns(param?: ScorecardsApiListScorecardCampaignsRequest, options?: Configuration): Promise<ListCampaignsResponse>;
    /**
     * Fetches all rule outcomes.
     * @param param The request object
     */
    listScorecardOutcomes(param?: ScorecardsApiListScorecardOutcomesRequest, options?: Configuration): Promise<OutcomesResponse>;
    /**
     * Provide a paginated version of listScorecardOutcomes returning a generator with all the items.
     */
    listScorecardOutcomesWithPagination(param?: ScorecardsApiListScorecardOutcomesRequest, options?: Configuration): AsyncGenerator<OutcomesResponseDataItem>;
    /**
     * Fetch all rules.
     * @param param The request object
     */
    listScorecardRules(param?: ScorecardsApiListScorecardRulesRequest, options?: Configuration): Promise<ListRulesResponse>;
    /**
     * Provide a paginated version of listScorecardRules returning a generator with all the items.
     */
    listScorecardRulesWithPagination(param?: ScorecardsApiListScorecardRulesRequest, options?: Configuration): AsyncGenerator<ListRulesResponseDataItem>;
    /**
     * Fetches all scorecards.
     * @param param The request object
     */
    listScorecards(param?: ScorecardsApiListScorecardsRequest, options?: Configuration): Promise<ListScorecardsResponse>;
    /**
     * Returns a list of scorecard scores for each aggregation type, with score breakdowns.
     * @param param The request object
     */
    listScorecardScores(param: ScorecardsApiListScorecardScoresRequest, options?: Configuration): Promise<ListScorecardScoresResponse>;
    /**
     * Updates an existing campaign.
     * @param param The request object
     */
    updateScorecardCampaign(param: ScorecardsApiUpdateScorecardCampaignRequest, options?: Configuration): Promise<CampaignResponse>;
    /**
     * Updates multiple scorecard rule outcomes in a single batched request.
     * @param param The request object
     */
    updateScorecardOutcomes(param: ScorecardsApiUpdateScorecardOutcomesRequest, options?: Configuration): Promise<void>;
    /**
     * Updates an existing rule.
     * @param param The request object
     */
    updateScorecardRule(param: ScorecardsApiUpdateScorecardRuleRequest, options?: Configuration): Promise<UpdateRuleResponse>;
}
