import { SmrtObjectOptions } from '@happyvertical/smrt-core'; import { SupportCompensationPlan, SupportCompensationPlanCollection } from '../models/support-compensation-plan.js'; import { SupportPlan, SupportPlanCollection } from '../models/support-plan.js'; import { SupportPrincipal } from '../permissions.js'; /** Thrown when a plan write is attempted without the manage-plans split. */ export declare class PlanAdminDeniedError extends Error { constructor(message: string); } export interface PlanAdminActor { principal: SupportPrincipal; } export declare class SupportPlanAdminService { readonly plans: SupportPlanCollection; readonly compensationPlans: SupportCompensationPlanCollection; protected constructor(collections: { plans: SupportPlanCollection; compensationPlans: SupportCompensationPlanCollection; }); static create(options: SmrtObjectOptions): Promise; /** Create (or overwrite via natural key) a Managed Support Plan. */ savePlan(input: PlanAdminActor & { fields: Record; }): Promise; /** Update an existing Managed Support Plan's fields. */ updatePlan(planId: string, input: PlanAdminActor & { fields: Record; }): Promise; /** Archive a Managed Support Plan (soft retirement; history untouched). */ archivePlan(planId: string, input: PlanAdminActor): Promise; /** Create a Support Compensation Plan (effective-dated earning terms). */ saveCompensationPlan(input: PlanAdminActor & { fields: Record; }): Promise; /** Update an existing Support Compensation Plan's fields. */ updateCompensationPlan(planId: string, input: PlanAdminActor & { fields: Record; }): Promise; /** Archive a Support Compensation Plan. */ archiveCompensationPlan(planId: string, input: PlanAdminActor): Promise; protected assertManager(principal: SupportPrincipal | undefined, act: string): void; /** Cross-tenant plan writes are refused when both sides carry a tenant. */ protected assertTenant(principal: SupportPrincipal, planTenantId: string | null): void; } export default SupportPlanAdminService; //# sourceMappingURL=support-plan-admin-service.d.ts.map