import { IComGithubFluxcdNotificationControllerApiV1CrossNamespaceObjectReference } from "../v1/CrossNamespaceObjectReference.js";
import { IComGithubFluxcdPkgApisMetaLocalObjectReference } from "../../github.com/fluxcd/pkg/apis/meta/LocalObjectReference.js";
import { ModelData, Model } from "@kubernetes-models/base";
/**
 * AlertSpec defines an alerting rule for events involving a list of objects.
 */
export interface IAlertSpec {
    /**
     * EventMetadata is an optional field for adding metadata to events dispatched by the
     * controller. This can be used for enhancing the context of the event. If a field
     * would override one already present on the original event as generated by the emitter,
     * then the override doesn't happen, i.e. the original value is preserved, and an info
     * log is printed.
     */
    "eventMetadata"?: {
        [key: string]: string;
    };
    /**
     * EventSeverity specifies how to filter events based on severity.
     * If set to 'info' no events will be filtered.
     */
    "eventSeverity"?: "info" | "error";
    /**
     * EventSources specifies how to filter events based
     * on the involved object kind, name and namespace.
     */
    "eventSources": Array<IComGithubFluxcdNotificationControllerApiV1CrossNamespaceObjectReference>;
    /**
     * ExclusionList specifies a list of Golang regular expressions
     * to be used for excluding messages.
     */
    "exclusionList"?: Array<string>;
    /**
     * InclusionList specifies a list of Golang regular expressions
     * to be used for including messages.
     */
    "inclusionList"?: Array<string>;
    /**
     * ProviderRef specifies which Provider this Alert should use.
     */
    "providerRef": IComGithubFluxcdPkgApisMetaLocalObjectReference;
    /**
     * Summary holds a short description of the impact and affected cluster.
     * Deprecated: Use EventMetadata instead.
     */
    "summary"?: string;
    /**
     * Suspend tells the controller to suspend subsequent
     * events handling for this Alert.
     */
    "suspend"?: boolean;
}
/**
 * AlertSpec defines an alerting rule for events involving a list of objects.
 */
export declare class AlertSpec extends Model<IAlertSpec> implements IAlertSpec {
    "eventMetadata"?: {
        [key: string]: string;
    };
    "eventSeverity"?: "info" | "error";
    "eventSources": Array<IComGithubFluxcdNotificationControllerApiV1CrossNamespaceObjectReference>;
    "exclusionList"?: Array<string>;
    "inclusionList"?: Array<string>;
    "providerRef": IComGithubFluxcdPkgApisMetaLocalObjectReference;
    "summary"?: string;
    "suspend"?: boolean;
    constructor(data?: ModelData<IAlertSpec>);
}
export type { IAlertSpec as IComGithubFluxcdNotificationControllerApiV1beta3AlertSpec, AlertSpec as ComGithubFluxcdNotificationControllerApiV1beta3AlertSpec };
