import type { Client } from 'openapi-fetch';
import type { RequestOptions } from './common.js';
import type { Event, operations, paths } from './schemas.js';
/**
 * Events are used to track usage of your product or service.
 * Events are processed asynchronously by the meters, so they may not be immediately available for querying.
 */
export declare class Events {
    private client;
    constructor(client: Client<paths, `${string}/${string}`>);
    /**
     * Ingests an event or batch of events
     * @param events - The events to ingest
     * @param signal - An optional abort signal
     * @returns The ingested events
     */
    ingest(events: Event | Event[], options?: RequestOptions): Promise<undefined>;
    /**
     * List events
     * @param params - The query parameters
     * @param options - Optional request options
     * @returns The events
     */
    list(params?: operations['listEvents']['parameters']['query'], options?: RequestOptions): Promise<{
        event: import("./schemas.js").components["schemas"]["Event"];
        customerId?: string;
        validationError?: string;
        ingestedAt: Date;
        storedAt: Date;
    }[] | undefined>;
    /**
     * List events (V2)
     * @description List ingested events with advanced filtering and cursor pagination.
     * @param params - The query parameters
     * @param options - Optional request options
     * @returns The events
     */
    listV2(params?: operations['listEventsV2']['parameters']['query'], options?: RequestOptions): Promise<{
        items: import("./schemas.js").components["schemas"]["IngestedEvent"][];
        nextCursor?: string;
    } | undefined>;
}
/**
 * Sets the defaults for an event
 * @param ev - The event to set the defaults for
 * @returns The event with the defaults set
 */
export declare function setDefaultsForEvent(ev: Event): Promise<Event>;
