import { type Client } from '../core.js'; import { type RequestOptions } from '../lib/types.js'; import type { ListBillingProfilesRequest, ListBillingProfilesResponse, CreateBillingProfileRequest, CreateBillingProfileResponse, GetBillingProfileRequest, GetBillingProfileResponse, UpdateBillingProfileRequest, UpdateBillingProfileResponse, DeleteBillingProfileRequest, DeleteBillingProfileResponse } from '../models/operations/billing.js'; import type { Profile } from '../models/types.js'; export declare class Billing { private readonly _client; constructor(_client: Client); /** * List billing profiles * * List billing profiles. * * GET /openmeter/profiles */ listProfiles(request?: ListBillingProfilesRequest, options?: RequestOptions): Promise; /** * List billing profiles * * List billing profiles. * * Iterates every item across all pages, fetching more as the returned iterable is consumed. * * GET /openmeter/profiles */ listProfilesAll(request?: ListBillingProfilesRequest, options?: RequestOptions): AsyncIterable; /** * Create a new billing profile * * Create a new billing profile. * * Billing profiles contain the settings for billing and controls invoice * generation. An organization can have multiple billing profiles defined. A * billing profile is linked to a specific app. This association is established * during the billing profile's creation and remains immutable. * * POST /openmeter/profiles */ createProfile(request: CreateBillingProfileRequest, options?: RequestOptions): Promise; /** * Get a billing profile * * Get a billing profile. * * GET /openmeter/profiles/{id} */ getProfile(request: GetBillingProfileRequest, options?: RequestOptions): Promise; /** * Update a billing profile * * Update a billing profile. * * PUT /openmeter/profiles/{id} */ updateProfile(request: UpdateBillingProfileRequest, options?: RequestOptions): Promise; /** * Delete a billing profile * * Delete a billing profile. * * Only such billing profiles can be deleted that are: * * - not the default profile * - not pinned to any customer using customer overrides * - only have finalized invoices * * DELETE /openmeter/profiles/{id} */ deleteProfile(request: DeleteBillingProfileRequest, options?: RequestOptions): Promise; }