import * as z from "zod/v4-mini";
import { Result as SafeParseResult } from "../../types/fp.js";
import { CustomerMeterSortProperty } from "../components/customermetersortproperty.js";
import { ListResourceCustomerMeter } from "../components/listresourcecustomermeter.js";
import { SDKValidationError } from "../errors/sdkvalidationerror.js";
/**
 * Filter by organization ID.
 */
export type CustomerMetersListQueryParamOrganizationIDFilter = string | Array<string>;
/**
 * Filter by customer ID.
 */
export type CustomerMetersListQueryParamCustomerIDFilter = string | Array<string>;
/**
 * Filter by external customer ID.
 */
export type CustomerMetersListQueryParamExternalCustomerIDFilter = string | Array<string>;
/**
 * Filter by meter ID.
 */
export type QueryParamMeterIDFilter = string | Array<string>;
export type CustomerMetersListRequest = {
    /**
     * Filter by organization ID.
     */
    organizationId?: string | Array<string> | null | undefined;
    /**
     * Filter by customer ID.
     */
    customerId?: string | Array<string> | null | undefined;
    /**
     * Filter by external customer ID.
     */
    externalCustomerId?: string | Array<string> | null | undefined;
    /**
     * Filter by meter ID.
     */
    meterId?: string | Array<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<CustomerMeterSortProperty> | null | undefined;
};
export type CustomerMetersListResponse = {
    result: ListResourceCustomerMeter;
};
/** @internal */
export type CustomerMetersListQueryParamOrganizationIDFilter$Outbound = string | Array<string>;
/** @internal */
export declare const CustomerMetersListQueryParamOrganizationIDFilter$outboundSchema: z.ZodMiniType<CustomerMetersListQueryParamOrganizationIDFilter$Outbound, CustomerMetersListQueryParamOrganizationIDFilter>;
export declare function customerMetersListQueryParamOrganizationIDFilterToJSON(customerMetersListQueryParamOrganizationIDFilter: CustomerMetersListQueryParamOrganizationIDFilter): string;
/** @internal */
export type CustomerMetersListQueryParamCustomerIDFilter$Outbound = string | Array<string>;
/** @internal */
export declare const CustomerMetersListQueryParamCustomerIDFilter$outboundSchema: z.ZodMiniType<CustomerMetersListQueryParamCustomerIDFilter$Outbound, CustomerMetersListQueryParamCustomerIDFilter>;
export declare function customerMetersListQueryParamCustomerIDFilterToJSON(customerMetersListQueryParamCustomerIDFilter: CustomerMetersListQueryParamCustomerIDFilter): string;
/** @internal */
export type CustomerMetersListQueryParamExternalCustomerIDFilter$Outbound = string | Array<string>;
/** @internal */
export declare const CustomerMetersListQueryParamExternalCustomerIDFilter$outboundSchema: z.ZodMiniType<CustomerMetersListQueryParamExternalCustomerIDFilter$Outbound, CustomerMetersListQueryParamExternalCustomerIDFilter>;
export declare function customerMetersListQueryParamExternalCustomerIDFilterToJSON(customerMetersListQueryParamExternalCustomerIDFilter: CustomerMetersListQueryParamExternalCustomerIDFilter): string;
/** @internal */
export type QueryParamMeterIDFilter$Outbound = string | Array<string>;
/** @internal */
export declare const QueryParamMeterIDFilter$outboundSchema: z.ZodMiniType<QueryParamMeterIDFilter$Outbound, QueryParamMeterIDFilter>;
export declare function queryParamMeterIDFilterToJSON(queryParamMeterIDFilter: QueryParamMeterIDFilter): string;
/** @internal */
export type CustomerMetersListRequest$Outbound = {
    organization_id?: string | Array<string> | null | undefined;
    customer_id?: string | Array<string> | null | undefined;
    external_customer_id?: string | Array<string> | null | undefined;
    meter_id?: string | Array<string> | null | undefined;
    page: number;
    limit: number;
    sorting?: Array<string> | null | undefined;
};
/** @internal */
export declare const CustomerMetersListRequest$outboundSchema: z.ZodMiniType<CustomerMetersListRequest$Outbound, CustomerMetersListRequest>;
export declare function customerMetersListRequestToJSON(customerMetersListRequest: CustomerMetersListRequest): string;
/** @internal */
export declare const CustomerMetersListResponse$inboundSchema: z.ZodMiniType<CustomerMetersListResponse, unknown>;
export declare function customerMetersListResponseFromJSON(jsonString: string): SafeParseResult<CustomerMetersListResponse, SDKValidationError>;
//# sourceMappingURL=customermeterslist.d.ts.map