import * as z from "zod/v3";
import { ClosedEnum } from "../types/enums.js";
export declare const UpdateInstallationStatus: {
    readonly Ready: "ready";
    readonly Pending: "pending";
    readonly Onboarding: "onboarding";
    readonly Suspended: "suspended";
    readonly Resumed: "resumed";
    readonly Uninstalled: "uninstalled";
    readonly Error: "error";
};
export type UpdateInstallationStatus = ClosedEnum<typeof UpdateInstallationStatus>;
export declare const UpdateInstallationType: {
    readonly Prepayment: "prepayment";
    readonly Subscription: "subscription";
};
export type UpdateInstallationType = ClosedEnum<typeof UpdateInstallationType>;
export type Details = {
    label: string;
    value?: string | undefined;
};
export type HighlightedDetails = {
    label: string;
    value?: string | undefined;
};
export type UpdateInstallationBillingPlan = {
    id: string;
    type: UpdateInstallationType;
    name: string;
    description?: string | undefined;
    paymentMethodRequired?: boolean | undefined;
    cost?: string | undefined;
    details?: Array<Details> | undefined;
    highlightedDetails?: Array<HighlightedDetails> | undefined;
    effectiveDate?: string | undefined;
    additionalProperties?: {
        [k: string]: any;
    } | undefined;
};
export declare const Level: {
    readonly Info: "info";
    readonly Warn: "warn";
    readonly Error: "error";
};
export type Level = ClosedEnum<typeof Level>;
export type Notification1 = {
    level: Level;
    title: string;
    message?: string | undefined;
    href?: string | undefined;
};
/**
 * A notification to display to your customer. Send `null` to clear the current notification.
 */
export type Notification = Notification1 | string;
export type UpdateInstallationRequestBody = {
    status?: UpdateInstallationStatus | undefined;
    externalId?: string | undefined;
    billingPlan?: UpdateInstallationBillingPlan | undefined;
    /**
     * A notification to display to your customer. Send `null` to clear the current notification.
     */
    notification?: Notification1 | string | undefined;
};
export type UpdateInstallationRequest = {
    integrationConfigurationId: string;
    requestBody?: UpdateInstallationRequestBody | undefined;
};
/** @internal */
export declare const UpdateInstallationStatus$outboundSchema: z.ZodNativeEnum<typeof UpdateInstallationStatus>;
/** @internal */
export declare const UpdateInstallationType$outboundSchema: z.ZodNativeEnum<typeof UpdateInstallationType>;
/** @internal */
export type Details$Outbound = {
    label: string;
    value?: string | undefined;
};
/** @internal */
export declare const Details$outboundSchema: z.ZodType<Details$Outbound, z.ZodTypeDef, Details>;
export declare function detailsToJSON(details: Details): string;
/** @internal */
export type HighlightedDetails$Outbound = {
    label: string;
    value?: string | undefined;
};
/** @internal */
export declare const HighlightedDetails$outboundSchema: z.ZodType<HighlightedDetails$Outbound, z.ZodTypeDef, HighlightedDetails>;
export declare function highlightedDetailsToJSON(highlightedDetails: HighlightedDetails): string;
/** @internal */
export type UpdateInstallationBillingPlan$Outbound = {
    id: string;
    type: string;
    name: string;
    description?: string | undefined;
    paymentMethodRequired?: boolean | undefined;
    cost?: string | undefined;
    details?: Array<Details$Outbound> | undefined;
    highlightedDetails?: Array<HighlightedDetails$Outbound> | undefined;
    effectiveDate?: string | undefined;
    [additionalProperties: string]: unknown;
};
/** @internal */
export declare const UpdateInstallationBillingPlan$outboundSchema: z.ZodType<UpdateInstallationBillingPlan$Outbound, z.ZodTypeDef, UpdateInstallationBillingPlan>;
export declare function updateInstallationBillingPlanToJSON(updateInstallationBillingPlan: UpdateInstallationBillingPlan): string;
/** @internal */
export declare const Level$outboundSchema: z.ZodNativeEnum<typeof Level>;
/** @internal */
export type Notification1$Outbound = {
    level: string;
    title: string;
    message?: string | undefined;
    href?: string | undefined;
};
/** @internal */
export declare const Notification1$outboundSchema: z.ZodType<Notification1$Outbound, z.ZodTypeDef, Notification1>;
export declare function notification1ToJSON(notification1: Notification1): string;
/** @internal */
export type Notification$Outbound = Notification1$Outbound | string;
/** @internal */
export declare const Notification$outboundSchema: z.ZodType<Notification$Outbound, z.ZodTypeDef, Notification>;
export declare function notificationToJSON(notification: Notification): string;
/** @internal */
export type UpdateInstallationRequestBody$Outbound = {
    status?: string | undefined;
    externalId?: string | undefined;
    billingPlan?: UpdateInstallationBillingPlan$Outbound | undefined;
    notification?: Notification1$Outbound | string | undefined;
};
/** @internal */
export declare const UpdateInstallationRequestBody$outboundSchema: z.ZodType<UpdateInstallationRequestBody$Outbound, z.ZodTypeDef, UpdateInstallationRequestBody>;
export declare function updateInstallationRequestBodyToJSON(updateInstallationRequestBody: UpdateInstallationRequestBody): string;
/** @internal */
export type UpdateInstallationRequest$Outbound = {
    integrationConfigurationId: string;
    RequestBody?: UpdateInstallationRequestBody$Outbound | undefined;
};
/** @internal */
export declare const UpdateInstallationRequest$outboundSchema: z.ZodType<UpdateInstallationRequest$Outbound, z.ZodTypeDef, UpdateInstallationRequest>;
export declare function updateInstallationRequestToJSON(updateInstallationRequest: UpdateInstallationRequest): string;
//# sourceMappingURL=updateinstallationop.d.ts.map