import type { ClassificationSeverity } from './ConversationClassificationEvaluation'; export declare const CLASSIFICATION_TAXONOMY_VERSIONS_COLLECTION = "classification_taxonomy_versions"; export declare const CONVERSATION_EVALUATIONS_COLLECTION = "conversation_evaluations"; export type ConversationClassificationDimension = 'contact_reason' | 'incident' | 'outcome' | 'recovery'; export type ClassificationTaxonomyStatus = 'draft' | 'published' | 'archived'; /** * Versioned classification configuration for a space. Draft changes increment * revision; publishing assigns version and only applies to future evaluations. */ export interface ClassificationTaxonomy { id?: string; spaceId: string; status: ClassificationTaxonomyStatus; version?: number; revision: number; basedOnVersion?: number; effectiveFrom?: Date; dimensions: ClassificationDimensionConfiguration[]; createdByUserId: string; createdAt: Date; updatedByUserId?: string; updatedAt: Date; publishedByUserId?: string; publishedAt?: Date; archivedAt?: Date; } export interface ClassificationDimensionConfiguration { dimension: ConversationClassificationDimension; enabled: boolean; categories: ClassificationCategory[]; } export interface ClassificationCategory { id: string; name: string; description?: string; inclusionCriteria: string[]; exclusionCriteria: string[]; positiveExamples: string[]; negativeExamples: string[]; allowMultiple: boolean; defaultSeverity?: ClassificationSeverity; sortOrder: number; active: boolean; subcategories: ClassificationSubcategory[]; } export interface ClassificationSubcategory { id: string; name: string; description?: string; inclusionCriteria: string[]; exclusionCriteria: string[]; positiveExamples: string[]; negativeExamples: string[]; sortOrder: number; active: boolean; } /** * Creates or replaces the editable draft. expectedRevision provides optimistic concurrency. */ export interface SaveClassificationTaxonomyDraftRequest { expectedRevision?: number; dimensions: ClassificationDimensionConfiguration[]; } /** Publishes the current draft as the next immutable version. */ export interface PublishClassificationTaxonomyRequest { expectedRevision: number; }