/** * Address Model * * Physical or mailing address for a client. */ import { type Address as AddressSchema, AddressType, type CountryIso2 } from "@artu-ai/shared"; import { BaseModel } from "./base"; /** * Address data structure from the API */ export interface AddressData extends AddressSchema { id: string; createdAt: string; updatedAt: string; } /** * Address Model. * * Provides typed accessors for address data with formatting helpers. * * @example * ```typescript * const addresses = await sdk.addresses.listByClient("client_123"); * for (const addr of addresses) { * console.log(addr.formatted); * console.log(`Primary: ${addr.isPrimary}`); * } * ``` */ export declare class Address extends BaseModel { /** * Unique address identifier */ get id(): string; /** * ID of the client this address belongs to */ get clientId(): string; /** * Address type (home, business, mailing, legal, other) */ get type(): AddressType; /** * Whether this is the primary address */ get isPrimary(): boolean; /** * Scope this address belongs to */ get scope(): string; /** * Street address line */ get street(): string; /** * City name */ get city(): string; /** * State or province */ get state(): string; /** * Postal/ZIP code */ get postalCode(): string; /** * Country code (ISO 3166-1 alpha-2) */ get country(): CountryIso2; /** * Scope-keyed data * (e.g., Mexico: exteriorNumber, neighborhood) */ get scopeData(): AddressSchema["scopeData"]; /** * External ID */ get externalId(): string | undefined; /** * Additional metadata */ get metadata(): Record | undefined; /** * When the address was created */ get createdAt(): Date; /** * When the address was last updated */ get updatedAt(): Date; /** * Whether this is a home address */ get isHome(): boolean; /** * Whether this is a business address */ get isBusiness(): boolean; /** * Whether this is a mailing address */ get isMailing(): boolean; /** * Whether this is a legal address */ get isLegal(): boolean; /** * Returns a formatted single-line address string */ get formatted(): string; /** * Returns a formatted multi-line address string */ get formattedMultiLine(): string; toString(): string; } /** * Check if value is any type of Address model */ export declare function isAddress(value: unknown): value is Address;