import * as z from "zod/v4-mini";
import { Result as SafeParseResult } from "../../types/fp.js";
import { EventSortProperty } from "../components/eventsortproperty.js";
import { EventSource } from "../components/eventsource.js";
import { ListResourceEvent } from "../components/listresourceevent.js";
import { ListResourceWithCursorPaginationEvent } from "../components/listresourcewithcursorpaginationevent.js";
import { MetadataQuery, MetadataQuery$Outbound } from "../components/subscriptionslist.js";
import { SDKValidationError } from "../errors/sdkvalidationerror.js";
/**
 * Filter by organization ID.
 */
export type EventsListQueryParamOrganizationIDFilter = string | Array<string>;
/**
 * Filter by customer ID.
 */
export type EventsListQueryParamCustomerIDFilter = string | Array<string>;
/**
 * Filter by external customer ID.
 */
export type EventsListQueryParamExternalCustomerIDFilter = string | Array<string>;
/**
 * Filter by event name.
 */
export type NameFilter = string | Array<string>;
/**
 * Filter by event source.
 */
export type SourceFilter = EventSource | Array<EventSource>;
export type EventsListRequest = {
    /**
     * Filter events following filter clauses. JSON string following the same schema a meter filter clause.
     */
    filter?: string | null | undefined;
    /**
     * Filter events after this timestamp.
     */
    startTimestamp?: Date | null | undefined;
    /**
     * Filter events before this timestamp.
     */
    endTimestamp?: Date | null | undefined;
    /**
     * 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 a meter filter clause.
     */
    meterId?: string | null | undefined;
    /**
     * Filter by event name.
     */
    name?: string | Array<string> | null | undefined;
    /**
     * Filter by event source.
     */
    source?: EventSource | Array<EventSource> | null | undefined;
    /**
     * Query to filter events.
     */
    query?: string | null | undefined;
    /**
     * When combined with depth, use this event as the anchor instead of root events.
     */
    parentId?: string | null | undefined;
    /**
     * Fetch descendants up to this depth. When set: 0=root events only, 1=roots+children, etc. Max 5. When not set, returns all events.
     */
    depth?: number | 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<EventSortProperty> | null | undefined;
    /**
     * Filter by metadata key-value pairs. It uses the `deepObject` style, e.g. `?metadata[key]=value`.
     */
    metadata?: {
        [k: string]: MetadataQuery;
    } | null | undefined;
};
/**
 * Successful Response
 */
export type EventsListResponseEventsList = ListResourceEvent | ListResourceWithCursorPaginationEvent;
/** @internal */
export type EventsListQueryParamOrganizationIDFilter$Outbound = string | Array<string>;
/** @internal */
export declare const EventsListQueryParamOrganizationIDFilter$outboundSchema: z.ZodMiniType<EventsListQueryParamOrganizationIDFilter$Outbound, EventsListQueryParamOrganizationIDFilter>;
export declare function eventsListQueryParamOrganizationIDFilterToJSON(eventsListQueryParamOrganizationIDFilter: EventsListQueryParamOrganizationIDFilter): string;
/** @internal */
export type EventsListQueryParamCustomerIDFilter$Outbound = string | Array<string>;
/** @internal */
export declare const EventsListQueryParamCustomerIDFilter$outboundSchema: z.ZodMiniType<EventsListQueryParamCustomerIDFilter$Outbound, EventsListQueryParamCustomerIDFilter>;
export declare function eventsListQueryParamCustomerIDFilterToJSON(eventsListQueryParamCustomerIDFilter: EventsListQueryParamCustomerIDFilter): string;
/** @internal */
export type EventsListQueryParamExternalCustomerIDFilter$Outbound = string | Array<string>;
/** @internal */
export declare const EventsListQueryParamExternalCustomerIDFilter$outboundSchema: z.ZodMiniType<EventsListQueryParamExternalCustomerIDFilter$Outbound, EventsListQueryParamExternalCustomerIDFilter>;
export declare function eventsListQueryParamExternalCustomerIDFilterToJSON(eventsListQueryParamExternalCustomerIDFilter: EventsListQueryParamExternalCustomerIDFilter): string;
/** @internal */
export type NameFilter$Outbound = string | Array<string>;
/** @internal */
export declare const NameFilter$outboundSchema: z.ZodMiniType<NameFilter$Outbound, NameFilter>;
export declare function nameFilterToJSON(nameFilter: NameFilter): string;
/** @internal */
export type SourceFilter$Outbound = string | Array<string>;
/** @internal */
export declare const SourceFilter$outboundSchema: z.ZodMiniType<SourceFilter$Outbound, SourceFilter>;
export declare function sourceFilterToJSON(sourceFilter: SourceFilter): string;
/** @internal */
export type EventsListRequest$Outbound = {
    filter?: string | null | undefined;
    start_timestamp?: string | null | undefined;
    end_timestamp?: string | null | undefined;
    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 | null | undefined;
    name?: string | Array<string> | null | undefined;
    source?: string | Array<string> | null | undefined;
    query?: string | null | undefined;
    parent_id?: string | null | undefined;
    depth?: number | null | undefined;
    page: number;
    limit: number;
    sorting?: Array<string> | null | undefined;
    metadata?: {
        [k: string]: MetadataQuery$Outbound;
    } | null | undefined;
};
/** @internal */
export declare const EventsListRequest$outboundSchema: z.ZodMiniType<EventsListRequest$Outbound, EventsListRequest>;
export declare function eventsListRequestToJSON(eventsListRequest: EventsListRequest): string;
/** @internal */
export declare const EventsListResponseEventsList$inboundSchema: z.ZodMiniType<EventsListResponseEventsList, unknown>;
export declare function eventsListResponseEventsListFromJSON(jsonString: string): SafeParseResult<EventsListResponseEventsList, SDKValidationError>;
//# sourceMappingURL=eventslist.d.ts.map