import type { ArgusDomain } from '../types';
export interface FilterDefinition {
    name: string;
    type: 'string' | 'number' | 'dateRange' | 'enum' | 'boolean';
    required?: boolean;
    values?: string[];
    description?: string;
}
export interface ValidationResult {
    valid: boolean;
    errors: string[];
}
/**
 * Domain Context - Input for building context
 */
export interface DomainContext {
    domain: ArgusDomain;
    filters?: Record<string, any>;
    query: string;
    metadata?: {
        userId?: string;
        projectId?: string;
        orgId?: string;
    };
}
/**
 * Domain Adapter - Interface for domain-specific operations
 * Each domain (TruPulse, TruEval, TruScout) implements this interface
 */
export interface DomainAdapter {
    /**
     * Get available filters for this domain
     */
    getAvailableFilters(): FilterDefinition[];
    /**
     * Validate filters
     */
    validateFilters(filters: Record<string, any>): ValidationResult;
    /**
     * Get domain display name
     */
    getDisplayName(): string;
    /**
     * Get domain description
     */
    getDescription(): string;
}
//# sourceMappingURL=domainAdapter.d.ts.map