/** * Base Product Model * * Pure data model with no API calls. * Provides type-safe access to common product properties. */ import type { BaseProduct, EmbeddedTag, Scope } from "@artu-ai/shared"; import { BaseModel } from "./base"; /** * Product data as returned from the API. * Extends the base schema with server-generated fields. */ export interface ProductData extends BaseProduct { id: string; createdAt: string; updatedAt: string; tags?: EmbeddedTag[]; } /** * Base Product Model. * * Pure data model with no API calls. * * @example * ```typescript * const product = await sdk.products.retrieve("prod_123"); * console.log(product.name); * console.log(product.scopes); * ``` */ export declare class Product extends BaseModel { /** * Unique identifier */ get id(): string; /** * Product name */ get name(): string; /** * Product description */ get description(): string | undefined; /** * External ID for integration with other systems */ get externalId(): string | undefined; /** * Scopes this product belongs to (e.g. ["MX", "MX:AV:ARI"]). */ get scopes(): string[]; /** * Tags applied to this product. */ get tags(): EmbeddedTag[]; /** * Checks if product has data for a specific scope */ hasScope(scope: Scope): boolean; /** * Raw scope data object */ get scopeData(): BaseProduct["scopeData"]; /** * Raw data for scope-specific access */ get data(): ProductData; /** * Custom metadata */ get metadata(): Record | undefined; /** * When the product record was created */ get createdAt(): Date; /** * When the product record was last updated */ get updatedAt(): Date; toString(): string; } /** * Check if value is any type of Product model */ export declare function isProduct(value: unknown): value is Product;