import * as z from "zod/v4-mini";
import { RFCDate } from "../../types/rfcdate.js";
import { ProductBillingType } from "../components/productbillingtype.js";
import { TimeInterval } from "../components/timeinterval.js";
/**
 * Filter by organization ID.
 */
export type MetricsGetQueryParamOrganizationIDFilter = string | Array<string>;
/**
 * Filter by product ID.
 */
export type MetricsGetQueryParamProductIDFilter = string | Array<string>;
/**
 * Filter by billing type. `recurring` will filter data corresponding to subscriptions creations or renewals. `one_time` will filter data corresponding to one-time purchases.
 */
export type QueryParamProductBillingTypeFilter = ProductBillingType | Array<ProductBillingType>;
/**
 * Filter by customer ID.
 */
export type MetricsGetQueryParamCustomerIDFilter = string | Array<string>;
export type MetricsGetRequest = {
    /**
     * Start date.
     */
    startDate: RFCDate;
    /**
     * End date.
     */
    endDate: RFCDate;
    /**
     * Timezone to use for the timestamps. Default is UTC.
     */
    timezone?: string | undefined;
    /**
     * Interval between two timestamps.
     */
    interval: TimeInterval;
    /**
     * Filter by organization ID.
     */
    organizationId?: string | Array<string> | null | undefined;
    /**
     * Filter by product ID.
     */
    productId?: string | Array<string> | null | undefined;
    /**
     * Filter by billing type. `recurring` will filter data corresponding to subscriptions creations or renewals. `one_time` will filter data corresponding to one-time purchases.
     */
    billingType?: ProductBillingType | Array<ProductBillingType> | null | undefined;
    /**
     * Filter by customer ID.
     */
    customerId?: string | Array<string> | null | undefined;
    /**
     * List of metric slugs to focus on. When provided, only the queries needed for these metrics will be executed, improving performance. If not provided, all metrics are returned.
     */
    metrics?: Array<string> | null | undefined;
};
/** @internal */
export type MetricsGetQueryParamOrganizationIDFilter$Outbound = string | Array<string>;
/** @internal */
export declare const MetricsGetQueryParamOrganizationIDFilter$outboundSchema: z.ZodMiniType<MetricsGetQueryParamOrganizationIDFilter$Outbound, MetricsGetQueryParamOrganizationIDFilter>;
export declare function metricsGetQueryParamOrganizationIDFilterToJSON(metricsGetQueryParamOrganizationIDFilter: MetricsGetQueryParamOrganizationIDFilter): string;
/** @internal */
export type MetricsGetQueryParamProductIDFilter$Outbound = string | Array<string>;
/** @internal */
export declare const MetricsGetQueryParamProductIDFilter$outboundSchema: z.ZodMiniType<MetricsGetQueryParamProductIDFilter$Outbound, MetricsGetQueryParamProductIDFilter>;
export declare function metricsGetQueryParamProductIDFilterToJSON(metricsGetQueryParamProductIDFilter: MetricsGetQueryParamProductIDFilter): string;
/** @internal */
export type QueryParamProductBillingTypeFilter$Outbound = string | Array<string>;
/** @internal */
export declare const QueryParamProductBillingTypeFilter$outboundSchema: z.ZodMiniType<QueryParamProductBillingTypeFilter$Outbound, QueryParamProductBillingTypeFilter>;
export declare function queryParamProductBillingTypeFilterToJSON(queryParamProductBillingTypeFilter: QueryParamProductBillingTypeFilter): string;
/** @internal */
export type MetricsGetQueryParamCustomerIDFilter$Outbound = string | Array<string>;
/** @internal */
export declare const MetricsGetQueryParamCustomerIDFilter$outboundSchema: z.ZodMiniType<MetricsGetQueryParamCustomerIDFilter$Outbound, MetricsGetQueryParamCustomerIDFilter>;
export declare function metricsGetQueryParamCustomerIDFilterToJSON(metricsGetQueryParamCustomerIDFilter: MetricsGetQueryParamCustomerIDFilter): string;
/** @internal */
export type MetricsGetRequest$Outbound = {
    start_date: string;
    end_date: string;
    timezone: string;
    interval: string;
    organization_id?: string | Array<string> | null | undefined;
    product_id?: string | Array<string> | null | undefined;
    billing_type?: string | Array<string> | null | undefined;
    customer_id?: string | Array<string> | null | undefined;
    metrics?: Array<string> | null | undefined;
};
/** @internal */
export declare const MetricsGetRequest$outboundSchema: z.ZodMiniType<MetricsGetRequest$Outbound, MetricsGetRequest>;
export declare function metricsGetRequestToJSON(metricsGetRequest: MetricsGetRequest): string;
//# sourceMappingURL=metricsget.d.ts.map