import * as z from "zod/v4-mini";
import { Result as SafeParseResult } from "../../types/fp.js";
import { CustomerCancellationReason } from "../components/customercancellationreason.js";
import { ListResourceSubscription } from "../components/listresourcesubscription.js";
import { MetadataQuery, MetadataQuery$Outbound } from "../components/subscriptionslist.js";
import { SubscriptionSortProperty } from "../components/subscriptionsortproperty.js";
import { SubscriptionStatus } from "../components/subscriptionstatus.js";
import { SDKValidationError } from "../errors/sdkvalidationerror.js";
/**
 * Filter by organization ID.
 */
export type OrganizationIDFilter = string | Array<string>;
/**
 * Filter by product ID.
 */
export type ProductIDFilter = string | Array<string>;
/**
 * Filter by customer ID.
 */
export type CustomerIDFilter = string | Array<string>;
/**
 * Filter by customer external ID.
 */
export type ExternalCustomerIDFilter = string | Array<string>;
/**
 * Filter by discount ID.
 */
export type DiscountIDFilter = string | Array<string>;
/**
 * Filter by subscription status.
 */
export type StatusFilter = SubscriptionStatus | Array<SubscriptionStatus>;
/**
 * Filter by customer cancellation reason.
 */
export type CustomerCancellationReasonFilter = CustomerCancellationReason | Array<CustomerCancellationReason>;
export type SubscriptionsListRequest = {
    /**
     * Filter by organization ID.
     */
    organizationId?: string | Array<string> | null | undefined;
    /**
     * Filter by product ID.
     */
    productId?: string | Array<string> | null | undefined;
    /**
     * Filter by customer ID.
     */
    customerId?: string | Array<string> | null | undefined;
    /**
     * Filter by customer external ID.
     */
    externalCustomerId?: string | Array<string> | null | undefined;
    /**
     * Filter by discount ID.
     */
    discountId?: string | Array<string> | null | undefined;
    /**
     * Filter by active or inactive subscription.
     *
     * @deprecated field: This will be removed in a future release, please migrate away from it as soon as possible.
     */
    active?: boolean | null | undefined;
    /**
     * Filter by subscription status.
     */
    status?: SubscriptionStatus | Array<SubscriptionStatus> | null | undefined;
    /**
     * Filter by subscriptions that are set to cancel at period end.
     */
    cancelAtPeriodEnd?: boolean | null | undefined;
    /**
     * Filter by customer cancellation reason.
     */
    customerCancellationReason?: CustomerCancellationReason | Array<CustomerCancellationReason> | null | undefined;
    /**
     * Filter by cancellation date (after or equal to).
     */
    canceledAtAfter?: Date | null | undefined;
    /**
     * Filter by cancellation date (before or equal to).
     */
    canceledAtBefore?: Date | null | undefined;
    /**
     * Page number, defaults to 1.
     */
    page?: number | undefined;
    /**
     * Size of a page, defaults to 10. Maximum is 100.
     */
    limit?: number | undefined;
    /**
     * Sorting criterion. Several criteria can be used simultaneously and will be applied in order. Add a minus sign `-` before the criteria name to sort by descending order.
     */
    sorting?: Array<SubscriptionSortProperty> | null | undefined;
    /**
     * Filter by metadata key-value pairs. It uses the `deepObject` style, e.g. `?metadata[key]=value`.
     */
    metadata?: {
        [k: string]: MetadataQuery;
    } | null | undefined;
};
export type SubscriptionsListResponse = {
    result: ListResourceSubscription;
};
/** @internal */
export type OrganizationIDFilter$Outbound = string | Array<string>;
/** @internal */
export declare const OrganizationIDFilter$outboundSchema: z.ZodMiniType<OrganizationIDFilter$Outbound, OrganizationIDFilter>;
export declare function organizationIDFilterToJSON(organizationIDFilter: OrganizationIDFilter): string;
/** @internal */
export type ProductIDFilter$Outbound = string | Array<string>;
/** @internal */
export declare const ProductIDFilter$outboundSchema: z.ZodMiniType<ProductIDFilter$Outbound, ProductIDFilter>;
export declare function productIDFilterToJSON(productIDFilter: ProductIDFilter): string;
/** @internal */
export type CustomerIDFilter$Outbound = string | Array<string>;
/** @internal */
export declare const CustomerIDFilter$outboundSchema: z.ZodMiniType<CustomerIDFilter$Outbound, CustomerIDFilter>;
export declare function customerIDFilterToJSON(customerIDFilter: CustomerIDFilter): string;
/** @internal */
export type ExternalCustomerIDFilter$Outbound = string | Array<string>;
/** @internal */
export declare const ExternalCustomerIDFilter$outboundSchema: z.ZodMiniType<ExternalCustomerIDFilter$Outbound, ExternalCustomerIDFilter>;
export declare function externalCustomerIDFilterToJSON(externalCustomerIDFilter: ExternalCustomerIDFilter): string;
/** @internal */
export type DiscountIDFilter$Outbound = string | Array<string>;
/** @internal */
export declare const DiscountIDFilter$outboundSchema: z.ZodMiniType<DiscountIDFilter$Outbound, DiscountIDFilter>;
export declare function discountIDFilterToJSON(discountIDFilter: DiscountIDFilter): string;
/** @internal */
export type StatusFilter$Outbound = string | Array<string>;
/** @internal */
export declare const StatusFilter$outboundSchema: z.ZodMiniType<StatusFilter$Outbound, StatusFilter>;
export declare function statusFilterToJSON(statusFilter: StatusFilter): string;
/** @internal */
export type CustomerCancellationReasonFilter$Outbound = string | Array<string>;
/** @internal */
export declare const CustomerCancellationReasonFilter$outboundSchema: z.ZodMiniType<CustomerCancellationReasonFilter$Outbound, CustomerCancellationReasonFilter>;
export declare function customerCancellationReasonFilterToJSON(customerCancellationReasonFilter: CustomerCancellationReasonFilter): string;
/** @internal */
export type SubscriptionsListRequest$Outbound = {
    organization_id?: string | Array<string> | null | undefined;
    product_id?: string | Array<string> | null | undefined;
    customer_id?: string | Array<string> | null | undefined;
    external_customer_id?: string | Array<string> | null | undefined;
    discount_id?: string | Array<string> | null | undefined;
    active?: boolean | null | undefined;
    status?: string | Array<string> | null | undefined;
    cancel_at_period_end?: boolean | null | undefined;
    customer_cancellation_reason?: string | Array<string> | null | undefined;
    canceled_at_after?: string | null | undefined;
    canceled_at_before?: string | null | undefined;
    page: number;
    limit: number;
    sorting?: Array<string> | null | undefined;
    metadata?: {
        [k: string]: MetadataQuery$Outbound;
    } | null | undefined;
};
/** @internal */
export declare const SubscriptionsListRequest$outboundSchema: z.ZodMiniType<SubscriptionsListRequest$Outbound, SubscriptionsListRequest>;
export declare function subscriptionsListRequestToJSON(subscriptionsListRequest: SubscriptionsListRequest): string;
/** @internal */
export declare const SubscriptionsListResponse$inboundSchema: z.ZodMiniType<SubscriptionsListResponse, unknown>;
export declare function subscriptionsListResponseFromJSON(jsonString: string): SafeParseResult<SubscriptionsListResponse, SDKValidationError>;
//# sourceMappingURL=subscriptionslist.d.ts.map