import { SmrtCollection, SmrtObject } from '@happyvertical/smrt-core'; import { SupportAvailabilityKind, SupportQualificationLevel, SupportSpecialistStatus } from '../types.js'; export declare class SupportSpecialist extends SmrtObject { tenantId: string | null; /** The Participant (Person profile) this specialist role belongs to. */ profileId: string; /** Display name for queues/routing rationale (denormalized from Profile). */ displayName: string; status: SupportSpecialistStatus; /** Languages the specialist supports (JSON array of BCP-47-ish codes). */ languages: string; /** IANA timezone the weekly availability windows are expressed in. */ timezone: string; /** Routing workload cap: open cases beyond this exclude the specialist. */ maxConcurrentCases: number; /** Tie-break priority for on-call ranking (higher = preferred). */ onCallPriority: number; notes: string; metadata: string; getLanguages(): string[]; setLanguages(languages: string[]): void; getMetadata(): Record; setMetadata(value: Record): void; isActive(): boolean; } export declare class SupportSpecialistCollection extends SmrtCollection { static readonly _itemClass: typeof SupportSpecialist; findActive(): Promise; byProfile(profileId: string): Promise; } export declare class SupportQualification extends SmrtObject { tenantId: string | null; specialistId: string; /** App-defined Project this qualification covers. */ projectId: string; level: SupportQualificationLevel; /** Effective-dating: null bounds mean open-ended. */ effectiveFrom: Date | null; effectiveTo: Date | null; grantedByProfileId: string | null; notes: string; /** Whether the qualification is effective at the given instant. */ isEffectiveAt(at?: Date): boolean; } export declare class SupportQualificationCollection extends SmrtCollection { static readonly _itemClass: typeof SupportQualification; forSpecialist(specialistId: string): Promise; forProject(projectId: string): Promise; } export declare class SupportAvailability extends SmrtObject { tenantId: string | null; specialistId: string; kind: SupportAvailabilityKind; /** Weekly windows: 0 = Sunday … 6 = Saturday. Null for span kinds. */ weekday: number | null; /** Weekly windows: minutes from midnight, inclusive start. */ startMinute: number; /** Weekly windows: minutes from midnight, exclusive end. */ endMinute: number; /** Span kinds (`on_call`, `time_off`): absolute start. */ startsAt: Date | null; /** Span kinds (`on_call`, `time_off`): absolute end. */ endsAt: Date | null; notes: string; } export declare class SupportAvailabilityCollection extends SmrtCollection { static readonly _itemClass: typeof SupportAvailability; forSpecialist(specialistId: string): Promise; } export default SupportSpecialist; //# sourceMappingURL=support-specialist.d.ts.map