import type { Client } from 'openapi-fetch'; import type { RequestOptions } from './common.cjs'; import type { FeatureCreateInputs, operations, paths } from './schemas.cjs'; /** * Features * @description Features are the building blocks of your application. They represent the capabilities or services that your application offers. */ export declare class Features { private client; constructor(client: Client); /** * Create a feature * @param feature - The feature to create * @param signal - An optional abort signal * @returns The created feature */ create(feature: FeatureCreateInputs, options?: RequestOptions): Promise<{ readonly createdAt: Date; readonly updatedAt: Date; readonly deletedAt?: Date; readonly archivedAt?: Date; key: string; name: string; metadata?: import("./schemas.cjs").components["schemas"]["Metadata"]; meterSlug?: string; meterGroupByFilters?: { [key: string]: string; }; advancedMeterGroupByFilters?: { [key: string]: import("./schemas.cjs").components["schemas"]["FilterString"]; }; unitCost?: import("./schemas.cjs").components["schemas"]["FeatureUnitCost"]; readonly id: string; } | undefined>; /** * Get a feature by ID * @param id - The ID of the feature * @param signal - An optional abort signal * @returns The feature */ get(id: operations['getFeature']['parameters']['path']['featureId'], options?: RequestOptions): Promise<{ readonly createdAt: Date; readonly updatedAt: Date; readonly deletedAt?: Date; readonly archivedAt?: Date; key: string; name: string; metadata?: import("./schemas.cjs").components["schemas"]["Metadata"]; meterSlug?: string; meterGroupByFilters?: { [key: string]: string; }; advancedMeterGroupByFilters?: { [key: string]: import("./schemas.cjs").components["schemas"]["FilterString"]; }; unitCost?: import("./schemas.cjs").components["schemas"]["FeatureUnitCost"]; readonly id: string; } | undefined>; /** * List features * @param query - The query parameters * @param signal - An optional abort signal * @returns The features */ list(query?: Omit, options?: RequestOptions): Promise<{ readonly createdAt: Date; readonly updatedAt: Date; readonly deletedAt?: Date; readonly archivedAt?: Date; key: string; name: string; metadata?: import("./schemas.cjs").components["schemas"]["Metadata"]; meterSlug?: string; meterGroupByFilters?: { [key: string]: string; }; advancedMeterGroupByFilters?: { [key: string]: import("./schemas.cjs").components["schemas"]["FilterString"]; }; unitCost?: import("./schemas.cjs").components["schemas"]["FeatureUnitCost"]; readonly id: string; }[]>; /** * Delete a feature by ID * @param id - The ID of the feature * @param signal - An optional abort signal * @returns The deleted feature */ delete(id: operations['deleteFeature']['parameters']['path']['featureId'], options?: RequestOptions): Promise; }