import * as z from "zod/v4-mini";
import { Result as SafeParseResult } from "../../types/fp.js";
import { CustomerSortProperty } from "../components/customersortproperty.js";
import { ListResourceCustomer } from "../components/listresourcecustomer.js";
import { MetadataQuery, MetadataQuery$Outbound } from "../components/subscriptionslist.js";
import { SDKValidationError } from "../errors/sdkvalidationerror.js";
/**
 * Filter by organization ID.
 */
export type CustomersListQueryParamOrganizationIDFilter = string | Array<string>;
export type CustomersListRequest = {
    /**
     * Filter by organization ID.
     */
    organizationId?: string | Array<string> | null | undefined;
    /**
     * Filter by exact email.
     */
    email?: string | null | undefined;
    /**
     * Filter by name, email, or external ID.
     */
    query?: string | null | undefined;
    /**
     * Filter by active customers, i.e. customers with at least one trialing, active or past_due subscription.
     */
    active?: boolean | 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<CustomerSortProperty> | 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 CustomersListResponse = {
    result: ListResourceCustomer;
};
/** @internal */
export type CustomersListQueryParamOrganizationIDFilter$Outbound = string | Array<string>;
/** @internal */
export declare const CustomersListQueryParamOrganizationIDFilter$outboundSchema: z.ZodMiniType<CustomersListQueryParamOrganizationIDFilter$Outbound, CustomersListQueryParamOrganizationIDFilter>;
export declare function customersListQueryParamOrganizationIDFilterToJSON(customersListQueryParamOrganizationIDFilter: CustomersListQueryParamOrganizationIDFilter): string;
/** @internal */
export type CustomersListRequest$Outbound = {
    organization_id?: string | Array<string> | null | undefined;
    email?: string | null | undefined;
    query?: string | null | undefined;
    active?: boolean | null | undefined;
    page: number;
    limit: number;
    sorting?: Array<string> | null | undefined;
    metadata?: {
        [k: string]: MetadataQuery$Outbound;
    } | null | undefined;
};
/** @internal */
export declare const CustomersListRequest$outboundSchema: z.ZodMiniType<CustomersListRequest$Outbound, CustomersListRequest>;
export declare function customersListRequestToJSON(customersListRequest: CustomersListRequest): string;
/** @internal */
export declare const CustomersListResponse$inboundSchema: z.ZodMiniType<CustomersListResponse, unknown>;
export declare function customersListResponseFromJSON(jsonString: string): SafeParseResult<CustomersListResponse, SDKValidationError>;
//# sourceMappingURL=customerslist.d.ts.map