import * as Schema from "effect/Schema";
export declare const GetPromotionCodesInput: Schema.Struct<{
    readonly active: Schema.optional<Schema.Boolean>;
    readonly code: Schema.optional<Schema.String>;
    readonly coupon: Schema.optional<Schema.String>;
    readonly created: Schema.optional<Schema.String>;
    readonly customer: Schema.optional<Schema.String>;
    readonly customer_account: Schema.optional<Schema.String>;
    readonly ending_before: Schema.optional<Schema.String>;
    readonly expand: Schema.optional<Schema.String>;
    readonly limit: Schema.optional<Schema.Number>;
    readonly starting_after: Schema.optional<Schema.String>;
}>;
export type GetPromotionCodesInput = typeof GetPromotionCodesInput.Type;
export declare const GetPromotionCodesOutput: Schema.Struct<{
    readonly data: Schema.$Array<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;
    }>>;
    readonly has_more: Schema.Boolean;
    readonly object: Schema.Literals<readonly ["list"]>;
    readonly url: Schema.String;
}>;
export type GetPromotionCodesOutput = typeof GetPromotionCodesOutput.Type;
/**
 * List all promotion codes
 *
 * <p>Returns a list of your promotion codes.</p>
 *
 * @param active - Filter promotion codes by whether they are active.
 * @param code - Only return promotion codes that have this case-insensitive code.
 * @param coupon - Only return promotion codes for this coupon.
 * @param created - A filter on the list, based on the object `created` field. The value can be a string with an integer Unix timestamp, or it can be a dictionary with a number of different query options.
 * @param customer - Only return promotion codes that are restricted to this customer.
 * @param customer_account - Only return promotion codes that are restricted to this account representing the customer.
 * @param ending_before - A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list.
 * @param expand - Specifies which fields in the response should be expanded.
 * @param limit - A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10.
 * @param starting_after - A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list.
 */
export declare const GetPromotionCodes: import("@distilled.cloud/core/client").OperationMethod<{
    readonly active?: boolean | undefined;
    readonly code?: string | undefined;
    readonly coupon?: string | undefined;
    readonly created?: string | undefined;
    readonly customer?: string | undefined;
    readonly customer_account?: string | undefined;
    readonly ending_before?: string | undefined;
    readonly expand?: string | undefined;
    readonly limit?: number | undefined;
    readonly starting_after?: string | undefined;
}, {
    readonly data: readonly {
        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;
    }[];
    readonly has_more: boolean;
    readonly object: "list";
    readonly url: string;
}, never, import("../credentials.ts").Credentials>;
//# sourceMappingURL=GetPromotionCodes.d.ts.map