import * as z from "zod/v3";
import { Result as SafeParseResult } from "../../types/fp.js";
import { SDKValidationError } from "../errors/sdkvalidationerror.js";
import { Filter, Filter$Outbound } from "./filter.js";
import { MetricDataSourceRefRep, MetricDataSourceRefRep$Outbound } from "./metricdatasourcerefrep.js";
export type MetricDenominatorRep = {
    /**
     * The warehouse event column for the denominator
     */
    eventName?: string | undefined;
    /**
     * Whether the denominator aggregates a numeric value
     */
    isNumeric?: boolean | undefined;
    /**
     * How individual unit values are aggregated for the denominator
     */
    unitAggregationType?: string | undefined;
    /**
     * The column to count distinct values of; required when unitAggregationType is count_distinct
     */
    unitAggregationField?: string | undefined;
    /**
     * For a numeric denominator, the column holding the numeric value
     */
    valueColumn?: string | undefined;
    dataSource?: MetricDataSourceRefRep | undefined;
    filters?: Filter | undefined;
    /**
     * Start of the measurement window in milliseconds
     */
    windowStartOffset?: number | undefined;
    /**
     * End of the measurement window in milliseconds
     */
    windowEndOffset?: number | undefined;
    /**
     * Lower winsorization percentile in the open interval (0, 100)
     */
    winsorLowerPercentile?: number | undefined;
    /**
     * Upper winsorization percentile in the open interval (0, 100)
     */
    winsorUpperPercentile?: number | undefined;
    /**
     * When true, the percentile bound calculation includes imputed zeros
     */
    winsorIncludeImputed?: boolean | undefined;
};
/** @internal */
export declare const MetricDenominatorRep$inboundSchema: z.ZodType<MetricDenominatorRep, z.ZodTypeDef, unknown>;
/** @internal */
export type MetricDenominatorRep$Outbound = {
    eventName?: string | undefined;
    isNumeric?: boolean | undefined;
    unitAggregationType?: string | undefined;
    unitAggregationField?: string | undefined;
    valueColumn?: string | undefined;
    dataSource?: MetricDataSourceRefRep$Outbound | undefined;
    filters?: Filter$Outbound | undefined;
    windowStartOffset?: number | undefined;
    windowEndOffset?: number | undefined;
    winsorLowerPercentile?: number | undefined;
    winsorUpperPercentile?: number | undefined;
    winsorIncludeImputed?: boolean | undefined;
};
/** @internal */
export declare const MetricDenominatorRep$outboundSchema: z.ZodType<MetricDenominatorRep$Outbound, z.ZodTypeDef, MetricDenominatorRep>;
export declare function metricDenominatorRepToJSON(metricDenominatorRep: MetricDenominatorRep): string;
export declare function metricDenominatorRepFromJSON(jsonString: string): SafeParseResult<MetricDenominatorRep, SDKValidationError>;
//# sourceMappingURL=metricdenominatorrep.d.ts.map