import * as Schema from "effect/Schema";
export declare const PostPromotionCodesInput: Schema.Struct<{
    readonly active: Schema.optional<Schema.Boolean>;
    readonly code: Schema.optional<Schema.String>;
    readonly customer: Schema.optional<Schema.String>;
    readonly customer_account: Schema.optional<Schema.String>;
    readonly expand: Schema.optional<Schema.$Array<Schema.String>>;
    readonly expires_at: Schema.optional<Schema.Number>;
    readonly max_redemptions: Schema.optional<Schema.Number>;
    readonly metadata: Schema.optional<Schema.$Record<Schema.String, Schema.String>>;
    readonly promotion: Schema.Struct<{
        readonly coupon: Schema.optional<Schema.String>;
        readonly type: Schema.Literals<readonly ["coupon"]>;
    }>;
    readonly restrictions: Schema.optional<Schema.Struct<{
        readonly currency_options: Schema.optional<Schema.$Record<Schema.String, Schema.Struct<{
            readonly minimum_amount: Schema.optional<Schema.Number>;
        }>>>;
        readonly first_time_transaction: Schema.optional<Schema.Boolean>;
        readonly minimum_amount: Schema.optional<Schema.Number>;
        readonly minimum_amount_currency: Schema.optional<Schema.String>;
    }>>;
}>;
export type PostPromotionCodesInput = typeof PostPromotionCodesInput.Type;
export declare const PostPromotionCodesOutput: 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 PostPromotionCodesOutput = typeof PostPromotionCodesOutput.Type;
/**
 * Create a promotion code
 *
 * <p>A promotion code points to an underlying promotion. You can optionally restrict the code to a specific customer, redemption limit, and expiration date.</p>
 */
export declare const PostPromotionCodes: import("@distilled.cloud/core/client").OperationMethod<{
    readonly active?: boolean | undefined;
    readonly code?: string | undefined;
    readonly customer?: string | undefined;
    readonly customer_account?: string | undefined;
    readonly expand?: readonly string[] | undefined;
    readonly expires_at?: number | undefined;
    readonly max_redemptions?: number | undefined;
    readonly metadata?: {
        readonly [x: string]: string;
    } | undefined;
    readonly promotion: {
        readonly coupon?: string | undefined;
        readonly type: "coupon";
    };
    readonly restrictions?: {
        readonly currency_options?: {
            readonly [x: string]: {
                readonly minimum_amount?: number | undefined;
            };
        } | undefined;
        readonly first_time_transaction?: boolean | undefined;
        readonly minimum_amount?: number | undefined;
        readonly minimum_amount_currency?: string | 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.ts").Credentials>;
//# sourceMappingURL=PostPromotionCodes.d.ts.map