import { type Client } from '../core.js'; import { type RequestOptions } from '../lib/types.js'; import type { ListFeaturesRequest, ListFeaturesResponse, CreateFeatureRequest, CreateFeatureResponse, GetFeatureRequest, GetFeatureResponse, UpdateFeatureRequest, UpdateFeatureResponse, DeleteFeatureRequest, DeleteFeatureResponse, QueryFeatureCostRequest, QueryFeatureCostResponse } from '../models/operations/features.js'; import type { Feature } from '../models/types.js'; export declare class Features { private readonly _client; constructor(_client: Client); /** * List features * * List all features. * * GET /openmeter/features */ list(request?: ListFeaturesRequest, options?: RequestOptions): Promise; /** * List features * * List all features. * * Iterates every item across all pages, fetching more as the returned iterable is consumed. * * GET /openmeter/features */ listAll(request?: ListFeaturesRequest, options?: RequestOptions): AsyncIterable; /** * Create feature * * Create a feature. * * POST /openmeter/features */ create(request: CreateFeatureRequest, options?: RequestOptions): Promise; /** * Get feature * * Get a feature by id. * * GET /openmeter/features/{featureId} */ get(request: GetFeatureRequest, options?: RequestOptions): Promise; /** * Update feature * * Update a feature by id. Currently only the unit_cost field can be updated. * * PATCH /openmeter/features/{featureId} */ update(request: UpdateFeatureRequest, options?: RequestOptions): Promise; /** * Delete feature * * Delete a feature by id. * * DELETE /openmeter/features/{featureId} */ delete(request: DeleteFeatureRequest, options?: RequestOptions): Promise; /** * Query feature cost * * Query the cost of a feature. * * POST /openmeter/features/{featureId}/cost/query */ queryCost(request: QueryFeatureCostRequest, options?: RequestOptions): Promise; }