import { type BaseCollectionPaginationCountResponse, type DirectoryObject, type Entity } from '../index.js';
import { type AdditionalDataHolder, type BackedModel, type Parsable, type ParseNode, type SerializationWriter } from '@microsoft/kiota-abstractions';
export interface Alert extends Entity, Parsable {
    /**
     * The alertType property
     */
    alertType?: AlertType | null;
    /**
     * The category property
     */
    category?: Category | null;
    /**
     * The time when Microsoft Entra Health monitoring generated the alert. Supports $orderby.
     */
    createdDateTime?: Date | null;
    /**
     * A key-value pair that contains the name of and link to the documentation to aid in investigation of the alert.
     */
    documentation?: Documentation | null;
    /**
     * Investigative information on the alert. This information typically includes counts of impacted objects, which include directory objects such as users, groups, and devices, and a pointer to supporting data.
     */
    enrichment?: Enrichment | null;
    /**
     * The scenario property
     */
    scenario?: Scenario | null;
    /**
     * The collection of signals that were used in the generation of the alert. These signals are sourced from serviceActivity APIs and are added to the alert as key-value pairs.
     */
    signals?: Signals | null;
    /**
     * The state property
     */
    state?: AlertState | null;
}
export interface AlertCollectionResponse extends BaseCollectionPaginationCountResponse, Parsable {
    /**
     * The value property
     */
    value?: Alert[] | null;
}
export interface AlertConfiguration extends Entity, Parsable {
    /**
     * Defines the recipients of email notifications for an alert type. Currently, only one email notification configuration is supported for an alert configuration, meaning only one group can receive notifications for an alert type.
     */
    emailNotificationConfigurations?: EmailNotificationConfiguration[] | null;
}
export interface AlertConfigurationCollectionResponse extends BaseCollectionPaginationCountResponse, Parsable {
    /**
     * The value property
     */
    value?: AlertConfiguration[] | null;
}
export type AlertState = (typeof AlertStateObject)[keyof typeof AlertStateObject];
export type AlertType = (typeof AlertTypeObject)[keyof typeof AlertTypeObject];
export interface ApplicationImpactSummary extends DirectoryObjectImpactSummary, Parsable {
}
export type Category = (typeof CategoryObject)[keyof typeof CategoryObject];
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns {AlertCollectionResponse}
 */
export declare function createAlertCollectionResponseFromDiscriminatorValue(parseNode: ParseNode | undefined): ((instance?: Parsable) => Record<string, (node: ParseNode) => void>);
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns {AlertConfigurationCollectionResponse}
 */
export declare function createAlertConfigurationCollectionResponseFromDiscriminatorValue(parseNode: ParseNode | undefined): ((instance?: Parsable) => Record<string, (node: ParseNode) => void>);
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns {AlertConfiguration}
 */
export declare function createAlertConfigurationFromDiscriminatorValue(parseNode: ParseNode | undefined): ((instance?: Parsable) => Record<string, (node: ParseNode) => void>);
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns {Alert}
 */
export declare function createAlertFromDiscriminatorValue(parseNode: ParseNode | undefined): ((instance?: Parsable) => Record<string, (node: ParseNode) => void>);
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns {ApplicationImpactSummary}
 */
export declare function createApplicationImpactSummaryFromDiscriminatorValue(parseNode: ParseNode | undefined): ((instance?: Parsable) => Record<string, (node: ParseNode) => void>);
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns {DeviceImpactSummary}
 */
export declare function createDeviceImpactSummaryFromDiscriminatorValue(parseNode: ParseNode | undefined): ((instance?: Parsable) => Record<string, (node: ParseNode) => void>);
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns {Dictionary}
 */
export declare function createDictionaryFromDiscriminatorValue(parseNode: ParseNode | undefined): ((instance?: Parsable) => Record<string, (node: ParseNode) => void>);
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns {DirectoryObjectImpactSummary}
 */
export declare function createDirectoryObjectImpactSummaryFromDiscriminatorValue(parseNode: ParseNode | undefined): ((instance?: Parsable) => Record<string, (node: ParseNode) => void>);
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns {Documentation}
 */
export declare function createDocumentationFromDiscriminatorValue(parseNode: ParseNode | undefined): ((instance?: Parsable) => Record<string, (node: ParseNode) => void>);
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns {EmailNotificationConfiguration}
 */
export declare function createEmailNotificationConfigurationFromDiscriminatorValue(parseNode: ParseNode | undefined): ((instance?: Parsable) => Record<string, (node: ParseNode) => void>);
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns {Enrichment}
 */
export declare function createEnrichmentFromDiscriminatorValue(parseNode: ParseNode | undefined): ((instance?: Parsable) => Record<string, (node: ParseNode) => void>);
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns {GroupImpactSummary}
 */
export declare function createGroupImpactSummaryFromDiscriminatorValue(parseNode: ParseNode | undefined): ((instance?: Parsable) => Record<string, (node: ParseNode) => void>);
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns {HealthMonitoringDictionary}
 */
export declare function createHealthMonitoringDictionaryFromDiscriminatorValue(parseNode: ParseNode | undefined): ((instance?: Parsable) => Record<string, (node: ParseNode) => void>);
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns {HealthMonitoringRoot}
 */
export declare function createHealthMonitoringRootFromDiscriminatorValue(parseNode: ParseNode | undefined): ((instance?: Parsable) => Record<string, (node: ParseNode) => void>);
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns {ResourceImpactSummary}
 */
export declare function createResourceImpactSummaryFromDiscriminatorValue(parseNode: ParseNode | undefined): ((instance?: Parsable) => Record<string, (node: ParseNode) => void>);
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns {ServicePrincipalImpactSummary}
 */
export declare function createServicePrincipalImpactSummaryFromDiscriminatorValue(parseNode: ParseNode | undefined): ((instance?: Parsable) => Record<string, (node: ParseNode) => void>);
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns {Signals}
 */
export declare function createSignalsFromDiscriminatorValue(parseNode: ParseNode | undefined): ((instance?: Parsable) => Record<string, (node: ParseNode) => void>);
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns {SupportingData}
 */
export declare function createSupportingDataFromDiscriminatorValue(parseNode: ParseNode | undefined): ((instance?: Parsable) => Record<string, (node: ParseNode) => void>);
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns {UserImpactSummary}
 */
export declare function createUserImpactSummaryFromDiscriminatorValue(parseNode: ParseNode | undefined): ((instance?: Parsable) => Record<string, (node: ParseNode) => void>);
/**
 * The deserialization information for the current model
 * @returns {Record<string, (node: ParseNode) => void>}
 */
export declare function deserializeIntoAlert(alert?: Partial<Alert> | undefined): Record<string, (node: ParseNode) => void>;
/**
 * The deserialization information for the current model
 * @returns {Record<string, (node: ParseNode) => void>}
 */
export declare function deserializeIntoAlertCollectionResponse(alertCollectionResponse?: Partial<AlertCollectionResponse> | undefined): Record<string, (node: ParseNode) => void>;
/**
 * The deserialization information for the current model
 * @returns {Record<string, (node: ParseNode) => void>}
 */
export declare function deserializeIntoAlertConfiguration(alertConfiguration?: Partial<AlertConfiguration> | undefined): Record<string, (node: ParseNode) => void>;
/**
 * The deserialization information for the current model
 * @returns {Record<string, (node: ParseNode) => void>}
 */
export declare function deserializeIntoAlertConfigurationCollectionResponse(alertConfigurationCollectionResponse?: Partial<AlertConfigurationCollectionResponse> | undefined): Record<string, (node: ParseNode) => void>;
/**
 * The deserialization information for the current model
 * @returns {Record<string, (node: ParseNode) => void>}
 */
export declare function deserializeIntoApplicationImpactSummary(applicationImpactSummary?: Partial<ApplicationImpactSummary> | undefined): Record<string, (node: ParseNode) => void>;
/**
 * The deserialization information for the current model
 * @returns {Record<string, (node: ParseNode) => void>}
 */
export declare function deserializeIntoDeviceImpactSummary(deviceImpactSummary?: Partial<DeviceImpactSummary> | undefined): Record<string, (node: ParseNode) => void>;
/**
 * The deserialization information for the current model
 * @returns {Record<string, (node: ParseNode) => void>}
 */
export declare function deserializeIntoDictionary(dictionary?: Partial<Dictionary> | undefined): Record<string, (node: ParseNode) => void>;
/**
 * The deserialization information for the current model
 * @returns {Record<string, (node: ParseNode) => void>}
 */
export declare function deserializeIntoDirectoryObjectImpactSummary(directoryObjectImpactSummary?: Partial<DirectoryObjectImpactSummary> | undefined): Record<string, (node: ParseNode) => void>;
/**
 * The deserialization information for the current model
 * @returns {Record<string, (node: ParseNode) => void>}
 */
export declare function deserializeIntoDocumentation(documentation?: Partial<Documentation> | undefined): Record<string, (node: ParseNode) => void>;
/**
 * The deserialization information for the current model
 * @returns {Record<string, (node: ParseNode) => void>}
 */
export declare function deserializeIntoEmailNotificationConfiguration(emailNotificationConfiguration?: Partial<EmailNotificationConfiguration> | undefined): Record<string, (node: ParseNode) => void>;
/**
 * The deserialization information for the current model
 * @returns {Record<string, (node: ParseNode) => void>}
 */
export declare function deserializeIntoEnrichment(enrichment?: Partial<Enrichment> | undefined): Record<string, (node: ParseNode) => void>;
/**
 * The deserialization information for the current model
 * @returns {Record<string, (node: ParseNode) => void>}
 */
export declare function deserializeIntoGroupImpactSummary(groupImpactSummary?: Partial<GroupImpactSummary> | undefined): Record<string, (node: ParseNode) => void>;
/**
 * The deserialization information for the current model
 * @returns {Record<string, (node: ParseNode) => void>}
 */
export declare function deserializeIntoHealthMonitoringDictionary(healthMonitoringDictionary?: Partial<HealthMonitoringDictionary> | undefined): Record<string, (node: ParseNode) => void>;
/**
 * The deserialization information for the current model
 * @returns {Record<string, (node: ParseNode) => void>}
 */
export declare function deserializeIntoHealthMonitoringRoot(healthMonitoringRoot?: Partial<HealthMonitoringRoot> | undefined): Record<string, (node: ParseNode) => void>;
/**
 * The deserialization information for the current model
 * @returns {Record<string, (node: ParseNode) => void>}
 */
export declare function deserializeIntoResourceImpactSummary(resourceImpactSummary?: Partial<ResourceImpactSummary> | undefined): Record<string, (node: ParseNode) => void>;
/**
 * The deserialization information for the current model
 * @returns {Record<string, (node: ParseNode) => void>}
 */
export declare function deserializeIntoServicePrincipalImpactSummary(servicePrincipalImpactSummary?: Partial<ServicePrincipalImpactSummary> | undefined): Record<string, (node: ParseNode) => void>;
/**
 * The deserialization information for the current model
 * @returns {Record<string, (node: ParseNode) => void>}
 */
export declare function deserializeIntoSignals(signals?: Partial<Signals> | undefined): Record<string, (node: ParseNode) => void>;
/**
 * The deserialization information for the current model
 * @returns {Record<string, (node: ParseNode) => void>}
 */
export declare function deserializeIntoSupportingData(supportingData?: Partial<SupportingData> | undefined): Record<string, (node: ParseNode) => void>;
/**
 * The deserialization information for the current model
 * @returns {Record<string, (node: ParseNode) => void>}
 */
export declare function deserializeIntoUserImpactSummary(userImpactSummary?: Partial<UserImpactSummary> | undefined): Record<string, (node: ParseNode) => void>;
export interface DeviceImpactSummary extends DirectoryObjectImpactSummary, Parsable {
}
export interface Dictionary extends AdditionalDataHolder, BackedModel, Parsable {
    /**
     * Stores additional data not described in the OpenAPI description found when deserializing. Can be used for serialization as well.
     */
    additionalData?: Record<string, unknown>;
    /**
     * Stores model information.
     */
    backingStoreEnabled?: boolean | null;
    /**
     * The OdataType property
     */
    odataType?: string | null;
}
export interface DirectoryObjectImpactSummary extends Parsable, ResourceImpactSummary {
    /**
     * The resourceSampling property
     */
    resourceSampling?: DirectoryObject[] | null;
}
export interface Documentation extends HealthMonitoringDictionary, Parsable {
}
export interface EmailNotificationConfiguration extends AdditionalDataHolder, BackedModel, Parsable {
    /**
     * Stores additional data not described in the OpenAPI description found when deserializing. Can be used for serialization as well.
     */
    additionalData?: Record<string, unknown>;
    /**
     * Stores model information.
     */
    backingStoreEnabled?: boolean | null;
    /**
     * The identifier of the group to send an email to. All group types with configured email addresses are supported.
     */
    groupId?: string | null;
    /**
     * Indicates whether email notifications are enabled on the alert type.
     */
    isEnabled?: boolean | null;
    /**
     * The OdataType property
     */
    odataType?: string | null;
}
export interface Enrichment extends AdditionalDataHolder, BackedModel, Parsable {
    /**
     * Stores additional data not described in the OpenAPI description found when deserializing. Can be used for serialization as well.
     */
    additionalData?: Record<string, unknown>;
    /**
     * Stores model information.
     */
    backingStoreEnabled?: boolean | null;
    /**
     * A collection of resource impact summaries that gives a high level view of the kind of resources that were impacted and to what degree.
     */
    impacts?: ResourceImpactSummary[] | null;
    /**
     * The OdataType property
     */
    odataType?: string | null;
    /**
     * The state property
     */
    state?: EnrichmentState | null;
    /**
     * A collection of supportingData locations that can be queried for debugging the alert.
     */
    supportingData?: SupportingData | null;
}
export type EnrichmentState = (typeof EnrichmentStateObject)[keyof typeof EnrichmentStateObject];
export interface GroupImpactSummary extends DirectoryObjectImpactSummary, Parsable {
}
export interface HealthMonitoringDictionary extends Dictionary, Parsable {
}
export interface HealthMonitoringRoot extends Entity, Parsable {
    /**
     * The configuration of an alert type, which defines behavior that occurs when an alert is created.
     */
    alertConfigurations?: AlertConfiguration[] | null;
    /**
     * The collection of health monitoring system detected alerts for anomalous usage patterns found in a Microsoft Entra tenant.
     */
    alerts?: Alert[] | null;
}
export interface ResourceImpactSummary extends AdditionalDataHolder, BackedModel, Parsable {
    /**
     * Stores additional data not described in the OpenAPI description found when deserializing. Can be used for serialization as well.
     */
    additionalData?: Record<string, unknown>;
    /**
     * Stores model information.
     */
    backingStoreEnabled?: boolean | null;
    /**
     * The number of resources impacted. The number could be an exhaustive count or a sampling count.
     */
    impactedCount?: string | null;
    /**
     * Indicates whether impactedCount is exhaustive or a sampling. When this value is true, the limit was exceeded and impactedCount represents a sampling; otherwise, impactedCount represents the true number of impacts.
     */
    impactedCountLimitExceeded?: boolean | null;
    /**
     * The OdataType property
     */
    odataType?: string | null;
    /**
     * The type of resource that was impacted. Examples include user, group, application, servicePrincipal, device.
     */
    resourceType?: string | null;
}
export type Scenario = (typeof ScenarioObject)[keyof typeof ScenarioObject];
/**
 * Serializes information the current object
 * @param writer Serialization writer to use to serialize this model
 */
export declare function serializeAlert(writer: SerializationWriter, alert?: Partial<Alert> | undefined | null): void;
/**
 * Serializes information the current object
 * @param writer Serialization writer to use to serialize this model
 */
export declare function serializeAlertCollectionResponse(writer: SerializationWriter, alertCollectionResponse?: Partial<AlertCollectionResponse> | undefined | null): void;
/**
 * Serializes information the current object
 * @param writer Serialization writer to use to serialize this model
 */
export declare function serializeAlertConfiguration(writer: SerializationWriter, alertConfiguration?: Partial<AlertConfiguration> | undefined | null): void;
/**
 * Serializes information the current object
 * @param writer Serialization writer to use to serialize this model
 */
export declare function serializeAlertConfigurationCollectionResponse(writer: SerializationWriter, alertConfigurationCollectionResponse?: Partial<AlertConfigurationCollectionResponse> | undefined | null): void;
/**
 * Serializes information the current object
 * @param writer Serialization writer to use to serialize this model
 */
export declare function serializeApplicationImpactSummary(writer: SerializationWriter, applicationImpactSummary?: Partial<ApplicationImpactSummary> | undefined | null): void;
/**
 * Serializes information the current object
 * @param writer Serialization writer to use to serialize this model
 */
export declare function serializeDeviceImpactSummary(writer: SerializationWriter, deviceImpactSummary?: Partial<DeviceImpactSummary> | undefined | null): void;
/**
 * Serializes information the current object
 * @param writer Serialization writer to use to serialize this model
 */
export declare function serializeDictionary(writer: SerializationWriter, dictionary?: Partial<Dictionary> | undefined | null): void;
/**
 * Serializes information the current object
 * @param writer Serialization writer to use to serialize this model
 */
export declare function serializeDirectoryObjectImpactSummary(writer: SerializationWriter, directoryObjectImpactSummary?: Partial<DirectoryObjectImpactSummary> | undefined | null): void;
/**
 * Serializes information the current object
 * @param writer Serialization writer to use to serialize this model
 */
export declare function serializeDocumentation(writer: SerializationWriter, documentation?: Partial<Documentation> | undefined | null): void;
/**
 * Serializes information the current object
 * @param writer Serialization writer to use to serialize this model
 */
export declare function serializeEmailNotificationConfiguration(writer: SerializationWriter, emailNotificationConfiguration?: Partial<EmailNotificationConfiguration> | undefined | null): void;
/**
 * Serializes information the current object
 * @param writer Serialization writer to use to serialize this model
 */
export declare function serializeEnrichment(writer: SerializationWriter, enrichment?: Partial<Enrichment> | undefined | null): void;
/**
 * Serializes information the current object
 * @param writer Serialization writer to use to serialize this model
 */
export declare function serializeGroupImpactSummary(writer: SerializationWriter, groupImpactSummary?: Partial<GroupImpactSummary> | undefined | null): void;
/**
 * Serializes information the current object
 * @param writer Serialization writer to use to serialize this model
 */
export declare function serializeHealthMonitoringDictionary(writer: SerializationWriter, healthMonitoringDictionary?: Partial<HealthMonitoringDictionary> | undefined | null): void;
/**
 * Serializes information the current object
 * @param writer Serialization writer to use to serialize this model
 */
export declare function serializeHealthMonitoringRoot(writer: SerializationWriter, healthMonitoringRoot?: Partial<HealthMonitoringRoot> | undefined | null): void;
/**
 * Serializes information the current object
 * @param writer Serialization writer to use to serialize this model
 */
export declare function serializeResourceImpactSummary(writer: SerializationWriter, resourceImpactSummary?: Partial<ResourceImpactSummary> | undefined | null): void;
/**
 * Serializes information the current object
 * @param writer Serialization writer to use to serialize this model
 */
export declare function serializeServicePrincipalImpactSummary(writer: SerializationWriter, servicePrincipalImpactSummary?: Partial<ServicePrincipalImpactSummary> | undefined | null): void;
/**
 * Serializes information the current object
 * @param writer Serialization writer to use to serialize this model
 */
export declare function serializeSignals(writer: SerializationWriter, signals?: Partial<Signals> | undefined | null): void;
/**
 * Serializes information the current object
 * @param writer Serialization writer to use to serialize this model
 */
export declare function serializeSupportingData(writer: SerializationWriter, supportingData?: Partial<SupportingData> | undefined | null): void;
/**
 * Serializes information the current object
 * @param writer Serialization writer to use to serialize this model
 */
export declare function serializeUserImpactSummary(writer: SerializationWriter, userImpactSummary?: Partial<UserImpactSummary> | undefined | null): void;
export interface ServicePrincipalImpactSummary extends DirectoryObjectImpactSummary, Parsable {
}
export interface Signals extends HealthMonitoringDictionary, Parsable {
}
export interface SupportingData extends HealthMonitoringDictionary, Parsable {
}
export interface UserImpactSummary extends DirectoryObjectImpactSummary, Parsable {
}
export declare const AlertStateObject: {
    readonly Active: "active";
    readonly Resolved: "resolved";
    readonly UnknownFutureValue: "unknownFutureValue";
};
export declare const AlertTypeObject: {
    readonly Unknown: "unknown";
    readonly MfaSignInFailure: "mfaSignInFailure";
    readonly ManagedDeviceSignInFailure: "managedDeviceSignInFailure";
    readonly CompliantDeviceSignInFailure: "compliantDeviceSignInFailure";
    readonly UnknownFutureValue: "unknownFutureValue";
};
export declare const CategoryObject: {
    readonly Unknown: "unknown";
    readonly Authentication: "authentication";
    readonly UnknownFutureValue: "unknownFutureValue";
};
export declare const EnrichmentStateObject: {
    readonly None: "none";
    readonly InProgress: "inProgress";
    readonly Enriched: "enriched";
    readonly UnknownFutureValue: "unknownFutureValue";
};
export declare const ScenarioObject: {
    readonly Unknown: "unknown";
    readonly Mfa: "mfa";
    readonly Devices: "devices";
    readonly UnknownFutureValue: "unknownFutureValue";
};
//# sourceMappingURL=index.d.ts.map