import type { ClientOptions } from 'openapi-fetch'; import type { RequestOptions } from '../client/common.js'; /** * Portal Config */ export type Config = Pick & { portalToken: string; }; /** * OpenMeter Portal Client * Access to the customer portal. */ export declare class OpenMeter { private client; constructor(config: Config); /** * Query usage data for a meter by slug for customer portal. * This endpoint is publicly exposable to consumers. * @param meterSlug - The slug of the meter * @param query - The query parameters * @param signal - An optional abort signal * @returns The meter data */ query(meterSlug: string, query?: { /** @description Start date-time in RFC 3339 format. Inclusive. */ from?: string | Date; /** @description End date-time in RFC 3339 format. Inclusive. */ to?: string | Date; /** @description If not specified, a single usage aggregate will be returned for the entirety of the specified period for each subject and group. */ windowSize?: 'MINUTE' | 'HOUR' | 'DAY'; /** @description The value is the name of the time zone as defined in the IANA Time Zone Database (http://www.iana.org/time-zones). If not specified, the UTC timezone will be used. */ windowTimeZone?: string; /** @description Simple filter for group bys with exact match. */ filterGroupBy?: Record; /** @description If not specified a single aggregate will be returned for each subject and time window. `subject` is a reserved group by value. */ groupBy?: string[]; }, options?: RequestOptions): Promise<{ from?: Date; to?: Date; windowSize?: import("../client/schemas.js").components["schemas"]["WindowSize"]; data: import("../client/schemas.js").components["schemas"]["MeterQueryRow"][]; }>; }