import { QueryAncestorReferenceV2026R0 } from './queryAncestorReferenceV2026R0.js';
import { QueryInsightsGroupByV2026R0 } from './queryInsightsGroupByV2026R0.js';
import { QueryInsightsMetricDefinitionV2026R0 } from './queryInsightsMetricDefinitionV2026R0.js';
import { SerializedData } from '../../serialization/json.js';
export interface QueryInsightsRequestBodyV2026R0QueryField {
    /**
     * A logical expression used to filter the dataset prior to metric
     * computation, similar to an SQL `WHERE` clause. May include
     * named parameters referenced as `:placeholder`. */
    readonly predicate: string;
    /**
     * A map of placeholder names (without the `:` prefix) to their values.
     * Required only when the predicate contains parameter placeholders. The
     * type of each value must match the type of the field it is compared to. */
    readonly params?: {
        readonly [key: string]: any;
    };
    /**
     * Restricts results to items contained within any of the specified
     * ancestors. The user must have access to every listed ancestor. When
     * omitted, insights are computed across all accessible items. */
    readonly ancestors?: readonly QueryAncestorReferenceV2026R0[];
    /**
     * Defines how data is grouped for insights computation. Currently only a
     * single grouping field is supported. */
    readonly groupBy?: readonly QueryInsightsGroupByV2026R0[];
    readonly rawData?: SerializedData;
}
export interface QueryInsightsRequestBodyV2026R0 {
    /**
     * The filtering and grouping definition. Filters are applied first, followed
     * by grouping, before metrics are computed. */
    readonly query: QueryInsightsRequestBodyV2026R0QueryField;
    /**
     * A map of user-defined metric aliases to their definitions. A maximum of 10
     * metrics may be defined. Each alias must be a unique, non-empty string of up
     * to 256 characters, containing only letters, digits, `_`, `-`, or `.`, and
     * must not start with a digit, `_`, `-`, or `.`. May be empty to request
     * only a total count. */
    readonly metrics: {
        readonly [key: string]: QueryInsightsMetricDefinitionV2026R0;
    };
    readonly rawData?: SerializedData;
}
export declare function serializeQueryInsightsRequestBodyV2026R0QueryField(val: QueryInsightsRequestBodyV2026R0QueryField): SerializedData;
export declare function deserializeQueryInsightsRequestBodyV2026R0QueryField(val: SerializedData): QueryInsightsRequestBodyV2026R0QueryField;
export declare function serializeQueryInsightsRequestBodyV2026R0(val: QueryInsightsRequestBodyV2026R0): SerializedData;
export declare function deserializeQueryInsightsRequestBodyV2026R0(val: SerializedData): QueryInsightsRequestBodyV2026R0;
//# sourceMappingURL=queryInsightsRequestBodyV2026R0.d.ts.map