import { type DateAttributeGranularity, type IAlertAnomalyDetectionGranularity, type IAlertAnomalyDetectionSensitivity, type IAlertComparisonOperator, type IAlertRelativeArithmeticOperator, type IAlertRelativeOperator, type IAutomationMetadataObject, type IAutomationMetadataObjectDefinition, type IAutomationRecipient, type ICatalogAttribute, type ICatalogDateDataset, type INotificationChannelIdentifier, type INotificationChannelMetadataObject, type ISeparators } from "@gooddata/sdk-model";
import { type IMeasureFormatMap } from "../../../../../automations/alerting/DefaultAlertingDialog/utils/getters.js";
import { type AlertAttribute, type AlertMetric, type AlertMetricComparatorType } from "../../../../../automations/alerting/types.js";
export interface IUseEditAlertProps {
    metrics: AlertMetric[];
    attributes: AlertAttribute[];
    alert: IAutomationMetadataObject;
    measureFormatMap: IMeasureFormatMap;
    catalogAttributes: ICatalogAttribute[];
    catalogDateDatasets: ICatalogDateDataset[];
    destinations: INotificationChannelIdentifier[] | INotificationChannelMetadataObject[];
    separators?: ISeparators;
    onCreate?: (alert: IAutomationMetadataObjectDefinition) => void;
    onUpdate?: (alert: IAutomationMetadataObject) => void;
}
export declare const useEditAlert: ({ metrics, attributes, alert, onCreate, onUpdate, measureFormatMap, destinations, separators, }: IUseEditAlertProps) => {
    defaultUser: import("@gooddata/sdk-model").IWorkspaceUser;
    viewMode: "configuration" | "edit";
    updatedAlert: IAutomationMetadataObject;
    canSubmit: boolean | undefined;
    allowOnlyLoggedUserRecipients: boolean;
    allowExternalRecipients: boolean;
    warningMessage: string | undefined;
    allowHourlyRecurrence: boolean;
    enableAnomalyDetectionAlert: boolean;
    changeComparisonOperator: (measure: AlertMetric, comparisonOperator: IAlertComparisonOperator) => void;
    changeAnomalyDetection: (measure: AlertMetric) => void;
    changeRelativeOperator: (measure: AlertMetric, relativeOperator: IAlertRelativeOperator, arithmeticOperator: IAlertRelativeArithmeticOperator) => void;
    changeMeasure: (measure: AlertMetric) => void;
    changeAttribute: (attribute: AlertAttribute | undefined, value: {
        title: string;
        value: string;
        name: string;
    } | undefined) => void;
    changeValue: (value: number) => void;
    changeTitle: (value: string | undefined) => void;
    changeDestination: (destinationId: string) => void;
    changeComparisonType: (measure: AlertMetric | undefined, relativeOperator: [IAlertRelativeOperator, IAlertRelativeArithmeticOperator] | undefined, comparisonType: AlertMetricComparatorType, granularity?: DateAttributeGranularity | undefined) => void;
    changeRecipients: (recipients: IAutomationRecipient[]) => void;
    changeSensitivity: (value: IAlertAnomalyDetectionSensitivity) => void;
    changeGranularity: (measure: AlertMetric | undefined, value: IAlertAnomalyDetectionGranularity) => void;
    configureAlert: () => void;
    saveAlertConfiguration: (alert: IAutomationMetadataObject) => void;
    cancelAlertConfiguration: () => void;
    createAlert: () => void;
    updateAlert: () => void;
};
//# sourceMappingURL=useEditAlert.d.ts.map