import { SmrtCollection, SmrtObject } from '@happyvertical/smrt-core'; import { SupportSettlementStatus } from '../types.js'; export declare class SupportCharge extends SmrtObject { tenantId: string | null; timeEntryId: string; caseId: string | null; /** Plan the pricing derived from (null = no plan; zero-amount charge). */ planId: string | null; /** * Client charge for the billable time, in **integer minor units** of * {@link currency} (#2401). Derived by the approval service, which rounds * `(hours * rate)` to a whole minor unit at the one boundary where a rate * meets money, so every comparison downstream is exact. */ amount: number; currency: string; /** Seconds priced at the metered rate (after included-time consumption). */ billableSeconds: number; /** Seconds absorbed by the plan's included support time. */ includedSecondsApplied: number; /** * JSON snapshot of the pricing terms used: hourly rate, rate source * (`overage` | `on_call` | `none`), plan key, included-time state, * derivation timestamp. Never rewritten by later plan edits. */ rateSnapshot: string; status: SupportSettlementStatus; finalizedAt: Date | null; metadata: string; getRateSnapshot(): Record; setRateSnapshot(value: Record): void; } export declare class SupportChargeCollection extends SmrtCollection { static readonly _itemClass: typeof SupportCharge; forTimeEntry(timeEntryId: string): Promise; forCase(caseId: string): Promise; } export declare class SupportCompensation extends SmrtObject { tenantId: string | null; timeEntryId: string; specialistId: string | null; /** Compensation plan the earning derived from (null = no plan resolved). */ compensationPlanId: string | null; /** * Provider earning for the payable time, in **integer minor units** of * {@link currency} (#2401). Converts with {@link SupportCharge.amount}: the * delivery margin is the difference between the two. */ amount: number; currency: string; /** Seconds compensated. */ payableSeconds: number; /** JSON snapshot of the earning terms used at derivation time. */ rateSnapshot: string; status: SupportSettlementStatus; finalizedAt: Date | null; metadata: string; getRateSnapshot(): Record; setRateSnapshot(value: Record): void; } export declare class SupportCompensationCollection extends SmrtCollection { static readonly _itemClass: typeof SupportCompensation; forTimeEntry(timeEntryId: string): Promise; forSpecialist(specialistId: string): Promise; } export default SupportCharge; //# sourceMappingURL=support-settlement.d.ts.map