import * as Schema from "effect/Schema";
export declare const PostPromotionCodesPromotionCodeInput: Schema.Struct<{
    readonly promotion_code: Schema.String;
    readonly active: Schema.optional<Schema.Boolean>;
    readonly expand: Schema.optional<Schema.$Array<Schema.String>>;
    readonly metadata: Schema.optional<Schema.Unknown>;
    readonly restrictions: Schema.optional<Schema.Struct<{
        readonly currency_options: Schema.optional<Schema.$Record<Schema.String, Schema.Struct<{
            readonly minimum_amount: Schema.optional<Schema.Number>;
        }>>>;
    }>>;
}>;
export type PostPromotionCodesPromotionCodeInput = typeof PostPromotionCodesPromotionCodeInput.Type;
export declare const PostPromotionCodesPromotionCodeOutput: Schema.Struct<{
    readonly active: Schema.Boolean;
    readonly code: Schema.String;
    readonly created: Schema.Number;
    readonly customer: Schema.Unknown;
    readonly customer_account: Schema.NullOr<Schema.String>;
    readonly expires_at: Schema.NullOr<Schema.Number>;
    readonly id: Schema.String;
    readonly livemode: Schema.Boolean;
    readonly max_redemptions: Schema.NullOr<Schema.Number>;
    readonly metadata: Schema.NullOr<Schema.$Record<Schema.String, Schema.String>>;
    readonly object: Schema.Literals<readonly ["promotion_code"]>;
    readonly promotion: Schema.Struct<{
        readonly coupon: Schema.Unknown;
        readonly type: Schema.Literals<readonly ["coupon"]>;
    }>;
    readonly restrictions: Schema.Struct<{
        readonly currency_options: Schema.optional<Schema.$Record<Schema.String, Schema.Struct<{
            readonly minimum_amount: Schema.Number;
        }>>>;
        readonly first_time_transaction: Schema.Boolean;
        readonly minimum_amount: Schema.NullOr<Schema.Number>;
        readonly minimum_amount_currency: Schema.NullOr<Schema.String>;
    }>;
    readonly times_redeemed: Schema.Number;
}>;
export type PostPromotionCodesPromotionCodeOutput = typeof PostPromotionCodesPromotionCodeOutput.Type;
/**
 * Update a promotion code
 *
 * <p>Updates the specified promotion code by setting the values of the parameters passed. Most fields are, by design, not editable.</p>
 */
export declare const PostPromotionCodesPromotionCode: import("@distilled.cloud/core/client").OperationMethod<{
    readonly active?: boolean | undefined;
    readonly expand?: readonly string[] | undefined;
    readonly metadata?: unknown;
    readonly promotion_code: string;
    readonly restrictions?: {
        readonly currency_options?: {
            readonly [x: string]: {
                readonly minimum_amount?: number | undefined;
            };
        } | undefined;
    } | undefined;
}, {
    readonly active: boolean;
    readonly code: string;
    readonly created: number;
    readonly customer: unknown;
    readonly customer_account: string | null;
    readonly expires_at: number | null;
    readonly id: string;
    readonly livemode: boolean;
    readonly max_redemptions: number | null;
    readonly metadata: {
        readonly [x: string]: string;
    } | null;
    readonly object: "promotion_code";
    readonly promotion: {
        readonly coupon: unknown;
        readonly type: "coupon";
    };
    readonly restrictions: {
        readonly currency_options?: {
            readonly [x: string]: {
                readonly minimum_amount: number;
            };
        } | undefined;
        readonly first_time_transaction: boolean;
        readonly minimum_amount: number | null;
        readonly minimum_amount_currency: string | null;
    };
    readonly times_redeemed: number;
}, never, import("..").Credentials>;
//# sourceMappingURL=PostPromotionCodesPromotionCode.d.ts.map