import { type Client } from '../core.js'; import { type RequestOptions } from '../lib/types.js'; import type { CreateMeterRequest, CreateMeterResponse, GetMeterRequest, GetMeterResponse, ListMetersRequest, ListMetersResponse, UpdateMeterRequest, UpdateMeterResponse, DeleteMeterRequest, DeleteMeterResponse, QueryMeterRequest, QueryMeterResponse, QueryMeterCsvRequest, QueryMeterCsvResponse } from '../models/operations/meters.js'; import type { Meter } from '../models/types.js'; export declare class Meters { private readonly _client; constructor(_client: Client); /** * Create meter * * Create a meter. * * POST /openmeter/meters */ create(request: CreateMeterRequest, options?: RequestOptions): Promise; /** * Get meter * * Get a meter by ID. * * GET /openmeter/meters/{meterId} */ get(request: GetMeterRequest, options?: RequestOptions): Promise; /** * List meters * * List meters. * * GET /openmeter/meters */ list(request?: ListMetersRequest, options?: RequestOptions): Promise; /** * List meters * * List meters. * * Iterates every item across all pages, fetching more as the returned iterable is consumed. * * GET /openmeter/meters */ listAll(request?: ListMetersRequest, options?: RequestOptions): AsyncIterable; /** * Update meter * * Update a meter. * * PUT /openmeter/meters/{meterId} */ update(request: UpdateMeterRequest, options?: RequestOptions): Promise; /** * Delete meter * * Delete a meter. * * DELETE /openmeter/meters/{meterId} */ delete(request: DeleteMeterRequest, options?: RequestOptions): Promise; /** * Query meter * * Query a meter for usage. * * Set `Accept: application/json` (the default) to get a structured JSON response. * Set `Accept: text/csv` to download the same data as a CSV file suitable for * spreadsheets. The CSV columns, in order, are: * * `from, to, [subject,] [customer_id, customer_key, customer_name,] , value` * * The `subject` column is emitted only when `subject` is in the query's * `group_by_dimensions`. The three `customer_*` columns are emitted together only * when `customer_id` is in the query's `group_by_dimensions`. * * POST /openmeter/meters/{meterId}/query */ query(request: QueryMeterRequest, options?: RequestOptions): Promise; /** POST /openmeter/meters/{meterId}/query */ queryCsv(request: QueryMeterCsvRequest, options?: RequestOptions): Promise; }