import * as z from "zod/v4-mini";
import { Result as SafeParseResult } from "../../types/fp.js";
import { BenefitSortProperty } from "../components/benefitsortproperty.js";
import { BenefitType } from "../components/benefittype.js";
import { ListResourceBenefit } from "../components/listresourcebenefit.js";
import { MetadataQuery, MetadataQuery$Outbound } from "../components/subscriptionslist.js";
import { SDKValidationError } from "../errors/sdkvalidationerror.js";
/**
 * Filter by organization ID.
 */
export type QueryParamOrganizationIDFilter = string | Array<string>;
/**
 * Filter by benefit type.
 */
export type BenefitTypeFilter = BenefitType | Array<BenefitType>;
/**
 * Filter by benefit IDs.
 */
export type FilterIDs = string | Array<string>;
/**
 * Exclude benefits with these IDs.
 */
export type ExcludeIDs = string | Array<string>;
export type BenefitsListRequest = {
    /**
     * Filter by organization ID.
     */
    organizationId?: string | Array<string> | null | undefined;
    /**
     * Filter by benefit type.
     */
    typeFilter?: BenefitType | Array<BenefitType> | null | undefined;
    /**
     * Filter by benefit IDs.
     */
    id?: string | Array<string> | null | undefined;
    /**
     * Exclude benefits with these IDs.
     */
    excludeId?: string | Array<string> | null | undefined;
    /**
     * Filter by description.
     */
    query?: string | 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<BenefitSortProperty> | 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 BenefitsListResponse = {
    result: ListResourceBenefit;
};
/** @internal */
export type QueryParamOrganizationIDFilter$Outbound = string | Array<string>;
/** @internal */
export declare const QueryParamOrganizationIDFilter$outboundSchema: z.ZodMiniType<QueryParamOrganizationIDFilter$Outbound, QueryParamOrganizationIDFilter>;
export declare function queryParamOrganizationIDFilterToJSON(queryParamOrganizationIDFilter: QueryParamOrganizationIDFilter): string;
/** @internal */
export type BenefitTypeFilter$Outbound = string | Array<string>;
/** @internal */
export declare const BenefitTypeFilter$outboundSchema: z.ZodMiniType<BenefitTypeFilter$Outbound, BenefitTypeFilter>;
export declare function benefitTypeFilterToJSON(benefitTypeFilter: BenefitTypeFilter): string;
/** @internal */
export type FilterIDs$Outbound = string | Array<string>;
/** @internal */
export declare const FilterIDs$outboundSchema: z.ZodMiniType<FilterIDs$Outbound, FilterIDs>;
export declare function filterIDsToJSON(filterIDs: FilterIDs): string;
/** @internal */
export type ExcludeIDs$Outbound = string | Array<string>;
/** @internal */
export declare const ExcludeIDs$outboundSchema: z.ZodMiniType<ExcludeIDs$Outbound, ExcludeIDs>;
export declare function excludeIDsToJSON(excludeIDs: ExcludeIDs): string;
/** @internal */
export type BenefitsListRequest$Outbound = {
    organization_id?: string | Array<string> | null | undefined;
    type_filter?: string | Array<string> | null | undefined;
    id?: string | Array<string> | null | undefined;
    exclude_id?: string | Array<string> | null | undefined;
    query?: string | null | undefined;
    page: number;
    limit: number;
    sorting?: Array<string> | null | undefined;
    metadata?: {
        [k: string]: MetadataQuery$Outbound;
    } | null | undefined;
};
/** @internal */
export declare const BenefitsListRequest$outboundSchema: z.ZodMiniType<BenefitsListRequest$Outbound, BenefitsListRequest>;
export declare function benefitsListRequestToJSON(benefitsListRequest: BenefitsListRequest): string;
/** @internal */
export declare const BenefitsListResponse$inboundSchema: z.ZodMiniType<BenefitsListResponse, unknown>;
export declare function benefitsListResponseFromJSON(jsonString: string): SafeParseResult<BenefitsListResponse, SDKValidationError>;
//# sourceMappingURL=benefitslist.d.ts.map