import * as Schema from "effect/Schema";
export declare const PostCouponsInput: Schema.Struct<{
    readonly amount_off: Schema.optional<Schema.Number>;
    readonly applies_to: Schema.optional<Schema.Struct<{
        readonly products: Schema.optional<Schema.$Array<Schema.String>>;
    }>>;
    readonly currency: Schema.optional<Schema.String>;
    readonly currency_options: Schema.optional<Schema.$Record<Schema.String, Schema.Struct<{
        readonly amount_off: Schema.Number;
    }>>>;
    readonly duration: Schema.optional<Schema.Literals<readonly ["forever", "once", "repeating"]>>;
    readonly duration_in_months: Schema.optional<Schema.Number>;
    readonly expand: Schema.optional<Schema.$Array<Schema.String>>;
    readonly id: Schema.optional<Schema.String>;
    readonly max_redemptions: Schema.optional<Schema.Number>;
    readonly metadata: Schema.optional<Schema.Unknown>;
    readonly name: Schema.optional<Schema.String>;
    readonly percent_off: Schema.optional<Schema.Number>;
    readonly redeem_by: Schema.optional<Schema.Number>;
}>;
export type PostCouponsInput = typeof PostCouponsInput.Type;
export declare const PostCouponsOutput: Schema.Struct<{
    readonly amount_off: Schema.NullOr<Schema.Number>;
    readonly applies_to: Schema.optional<Schema.Struct<{
        readonly products: Schema.$Array<Schema.String>;
    }>>;
    readonly created: Schema.Number;
    readonly currency: Schema.NullOr<Schema.String>;
    readonly currency_options: Schema.optional<Schema.$Record<Schema.String, Schema.Struct<{
        readonly amount_off: Schema.Number;
    }>>>;
    readonly duration: Schema.Literals<readonly ["forever", "once", "repeating"]>;
    readonly duration_in_months: 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 name: Schema.NullOr<Schema.String>;
    readonly object: Schema.Literals<readonly ["coupon"]>;
    readonly percent_off: Schema.NullOr<Schema.Number>;
    readonly redeem_by: Schema.NullOr<Schema.Number>;
    readonly times_redeemed: Schema.Number;
    readonly valid: Schema.Boolean;
}>;
export type PostCouponsOutput = typeof PostCouponsOutput.Type;
/**
 * Create a coupon
 *
 * <p>You can create coupons easily via the <a href="https://dashboard.stripe.com/coupons">coupon management</a> page of the Stripe dashboard. Coupon creation is also accessible via the API if you need to create coupons on the fly.</p>
 * <p>A coupon has either a <code>percent_off</code> or an <code>amount_off</code> and <code>currency</code>. If you set an <code>amount_off</code>, that amount will be subtracted from any invoice’s subtotal. For example, an invoice with a subtotal of <currency>100</currency> will have a final total of <currency>0</currency> if a coupon with an <code>amount_off</code> of <amount>200</amount> is applied to it and an invoice with a subtotal of <currency>300</currency> will have a final total of <currency>100</currency> if a coupon with an <code>amount_off</code> of <amount>200</amount> is applied to it.</p>
 */
export declare const PostCoupons: import("@distilled.cloud/core/client").OperationMethod<{
    readonly amount_off?: number | undefined;
    readonly applies_to?: {
        readonly products?: readonly string[] | undefined;
    } | undefined;
    readonly currency?: string | undefined;
    readonly currency_options?: {
        readonly [x: string]: {
            readonly amount_off: number;
        };
    } | undefined;
    readonly duration?: "forever" | "once" | "repeating" | undefined;
    readonly duration_in_months?: number | undefined;
    readonly expand?: readonly string[] | undefined;
    readonly id?: string | undefined;
    readonly max_redemptions?: number | undefined;
    readonly metadata?: unknown;
    readonly name?: string | undefined;
    readonly percent_off?: number | undefined;
    readonly redeem_by?: number | undefined;
}, {
    readonly amount_off: number | null;
    readonly applies_to?: {
        readonly products: readonly string[];
    } | undefined;
    readonly created: number;
    readonly currency: string | null;
    readonly currency_options?: {
        readonly [x: string]: {
            readonly amount_off: number;
        };
    } | undefined;
    readonly duration: "forever" | "once" | "repeating";
    readonly duration_in_months: number | null;
    readonly id: string;
    readonly livemode: boolean;
    readonly max_redemptions: number | null;
    readonly metadata: {
        readonly [x: string]: string;
    } | null;
    readonly name: string | null;
    readonly object: "coupon";
    readonly percent_off: number | null;
    readonly redeem_by: number | null;
    readonly times_redeemed: number;
    readonly valid: boolean;
}, never, import("..").Credentials>;
//# sourceMappingURL=PostCoupons.d.ts.map