import * as z from "zod/v4-mini";
import { Result as SafeParseResult } from "../../types/fp.js";
import { BenefitGrantSortProperty } from "../components/benefitgrantsortproperty.js";
import { ListResourceBenefitGrant } from "../components/listresourcebenefitgrant.js";
import { SDKValidationError } from "../errors/sdkvalidationerror.js";
/**
 * Filter by organization ID.
 */
export type BenefitGrantsListQueryParamOrganizationIDFilter = string | Array<string>;
/**
 * Filter by customer ID.
 */
export type BenefitGrantsListQueryParamCustomerIDFilter = string | Array<string>;
/**
 * Filter by customer external ID.
 */
export type QueryParamExternalCustomerIDFilter = string | Array<string>;
export type BenefitGrantsListRequest = {
    /**
     * Filter by organization ID.
     */
    organizationId?: 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 granted status. If `true`, only granted benefits will be returned. If `false`, only revoked benefits will be returned.
     */
    isGranted?: 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<BenefitGrantSortProperty> | null | undefined;
};
export type BenefitGrantsListResponse = {
    result: ListResourceBenefitGrant;
};
/** @internal */
export type BenefitGrantsListQueryParamOrganizationIDFilter$Outbound = string | Array<string>;
/** @internal */
export declare const BenefitGrantsListQueryParamOrganizationIDFilter$outboundSchema: z.ZodMiniType<BenefitGrantsListQueryParamOrganizationIDFilter$Outbound, BenefitGrantsListQueryParamOrganizationIDFilter>;
export declare function benefitGrantsListQueryParamOrganizationIDFilterToJSON(benefitGrantsListQueryParamOrganizationIDFilter: BenefitGrantsListQueryParamOrganizationIDFilter): string;
/** @internal */
export type BenefitGrantsListQueryParamCustomerIDFilter$Outbound = string | Array<string>;
/** @internal */
export declare const BenefitGrantsListQueryParamCustomerIDFilter$outboundSchema: z.ZodMiniType<BenefitGrantsListQueryParamCustomerIDFilter$Outbound, BenefitGrantsListQueryParamCustomerIDFilter>;
export declare function benefitGrantsListQueryParamCustomerIDFilterToJSON(benefitGrantsListQueryParamCustomerIDFilter: BenefitGrantsListQueryParamCustomerIDFilter): string;
/** @internal */
export type QueryParamExternalCustomerIDFilter$Outbound = string | Array<string>;
/** @internal */
export declare const QueryParamExternalCustomerIDFilter$outboundSchema: z.ZodMiniType<QueryParamExternalCustomerIDFilter$Outbound, QueryParamExternalCustomerIDFilter>;
export declare function queryParamExternalCustomerIDFilterToJSON(queryParamExternalCustomerIDFilter: QueryParamExternalCustomerIDFilter): string;
/** @internal */
export type BenefitGrantsListRequest$Outbound = {
    organization_id?: string | Array<string> | null | undefined;
    customer_id?: string | Array<string> | null | undefined;
    external_customer_id?: string | Array<string> | null | undefined;
    is_granted?: boolean | null | undefined;
    page: number;
    limit: number;
    sorting?: Array<string> | null | undefined;
};
/** @internal */
export declare const BenefitGrantsListRequest$outboundSchema: z.ZodMiniType<BenefitGrantsListRequest$Outbound, BenefitGrantsListRequest>;
export declare function benefitGrantsListRequestToJSON(benefitGrantsListRequest: BenefitGrantsListRequest): string;
/** @internal */
export declare const BenefitGrantsListResponse$inboundSchema: z.ZodMiniType<BenefitGrantsListResponse, unknown>;
export declare function benefitGrantsListResponseFromJSON(jsonString: string): SafeParseResult<BenefitGrantsListResponse, SDKValidationError>;
//# sourceMappingURL=benefitgrantslist.d.ts.map