import { SmrtObject } from '@happyvertical/smrt-core'; import { CampaignOptions, CampaignStatus } from '../types.js'; export declare class Campaign extends SmrtObject { tenantId: string | null; /** Canonical commerce Customer that owns this campaign, when assigned. */ customerId: string | null; /** Stable caller-defined key used by CRM/referral systems. */ campaignKey: string; name: string; /** Open objective key such as `awareness` or `demand_generation`. */ objective: string; status: CampaignStatus; startAt: Date | null; endAt: Date | null; /** Total campaign budget in integer cents. */ budgetCents: number; /** ISO 4217 currency for every campaign/channel amount. */ currency: string; metadata: string; constructor(options?: CampaignOptions); initialize(): Promise; save(): Promise; private saveLifecycle; /** Canonicalize and authorize identity before any status or scope read. */ private prepareIdentityForSave; /** Apply one legal transition in memory; callers choose the save boundary. */ transitionTo(next: CampaignStatus): this; getMetadata(): Record; setMetadata(metadata: Record): void; private assertSchedule; private resolvePriorStatus; private assertStatusTransition; private static coerceDate; } export default Campaign; //# sourceMappingURL=Campaign.d.ts.map