import { type Client, type ClientOptions } from 'openapi-fetch';
import { Addons } from './addons.js';
import { Apps } from './apps.js';
import { Billing } from './billing.js';
import { Customers } from './customers.js';
import { Debug } from './debug.js';
import { Entitlements, EntitlementsV2 } from './entitlements.js';
import { Events } from './events.js';
import { Features } from './features.js';
import { Info } from './info.js';
import { Meters } from './meters.js';
import { Notifications } from './notifications.js';
import { Plans } from './plans.js';
import { Portal } from './portal.js';
import type { paths } from './schemas.js';
import { Subjects } from './subjects.js';
import { SubscriptionAddons } from './subscription-addons.js';
import { Subscriptions } from './subscriptions.js';
export * from './common.js';
export * from './schemas.js';
/**
 * OpenMeter Config
 */
export type Config = Pick<ClientOptions, 'baseUrl' | 'headers' | 'fetch' | 'Request' | 'requestInitExt'> & ({
    apiKey?: string;
} | {
    baseUrl: 'https://openmeter.cloud';
    apiKey: string;
});
/**
 * OpenMeter Client
 */
export declare class OpenMeter {
    config: Config;
    client: Client<paths, `${string}/${string}`>;
    addons: Addons;
    apps: Apps;
    billing: Billing;
    customers: Customers;
    debug: Debug;
    entitlementsV1: Entitlements;
    entitlements: EntitlementsV2;
    events: Events;
    features: Features;
    info: Info;
    meters: Meters;
    notifications: Notifications;
    plans: Plans;
    portal: Portal;
    subjects: Subjects;
    subscriptionAddons: SubscriptionAddons;
    subscriptions: Subscriptions;
    constructor(config: Config);
}
