/**
 * Общие типы данных для SDK
 */
/**
 * Режим работы SDK
 */
export type SdkMode = 'browser' | 'node' | 'auto';
/**
 * Поддерживаемые языки программирования
 */
export type ProgrammingLanguage = 'javascript' | 'typescript' | 'python' | 'java' | 'c' | 'cpp' | 'csharp' | 'php' | 'ruby' | 'go' | 'rust' | 'swift' | 'kotlin' | 'scala' | 'html' | 'css' | 'json' | 'yaml' | 'markdown' | 'shell' | 'sql' | 'plaintext' | 'unknown';
/**
 * Уровень логирования
 */
export declare enum LogLevel {
    DEBUG = "debug",
    INFO = "info",
    WARN = "warn",
    ERROR = "error"
}
/**
 * Сообщение лога
 */
export interface LogMessage {
    /** Уровень логирования */
    level: LogLevel;
    /** Сообщение */
    message: string;
    /** Метка времени */
    timestamp: string;
    /** Дополнительные данные */
    data?: any;
}
/**
 * Результат операции
 */
export interface OperationResult<T = any> {
    /** Успешность операции */
    success: boolean;
    /** Данные результата (если успех) */
    data?: T;
    /** Сообщение об ошибке (если неудача) */
    error?: string;
    /** Код ошибки (если неудача) */
    errorCode?: string;
    /** Детали ошибки (если неудача) */
    errorDetails?: any;
}
/**
 * Настройки модели ИИ
 */
export interface ModelSettings {
    /** Название модели */
    model: string;
    /** Температура генерации */
    temperature?: number;
    /** Максимальная длина ответа */
    maxTokens?: number;
    /** Штрафы за повторения */
    repetitionPenalty?: number;
    /** Дополнительные параметры */
    extraParams?: Record<string, any>;
}
/**
 * Базовый интерфейс для пагинации
 */
export interface PaginationParams {
    /** Лимит результатов */
    limit?: number;
    /** Смещение для пагинации */
    offset?: number;
}
/**
 * Результаты с пагинацией
 */
export interface PaginatedResults<T> {
    /** Результаты */
    items: T[];
    /** Общее количество результатов */
    total: number;
    /** Лимит результатов */
    limit: number;
    /** Смещение для пагинации */
    offset: number;
    /** Количество страниц */
    pageCount: number;
    /** Текущая страница */
    currentPage: number;
}
/**
 * Направление сортировки
 */
export type SortDirection = 'asc' | 'desc';
/**
 * Параметры сортировки
 */
export interface SortParams {
    /** Поле для сортировки */
    field: string;
    /** Направление сортировки */
    direction: SortDirection;
}
/**
 * Параметры фильтрации
 */
export interface FilterParams {
    /** Фильтры */
    [key: string]: any;
}
/**
 * Статус задачи
 */
export type TaskStatus = 'pending' | 'running' | 'completed' | 'failed' | 'cancelled';
/**
 * Базовая задача
 */
export interface Task {
    /** Идентификатор задачи */
    id: string;
    /** Тип задачи */
    type: string;
    /** Статус задачи */
    status: TaskStatus;
    /** Прогресс выполнения (0-100) */
    progress: number;
    /** Сообщение о прогрессе */
    message?: string;
    /** Результат выполнения */
    result?: any;
    /** Сообщение об ошибке */
    error?: string;
    /** Дата создания */
    createdAt: string;
    /** Дата обновления */
    updatedAt: string;
    /** Дата завершения */
    completedAt?: string;
}
/**
 * Тип зависимости
 */
export declare enum DependencyType {
    /** Импорт */
    IMPORT = "import",
    /** Наследование */
    EXTENDS = "extends",
    /** Реализация интерфейса */
    IMPLEMENTS = "implements",
    /** Внешняя библиотека */
    EXTERNAL = "external",
    /** Стиль (CSS) */
    STYLE = "style",
    /** Ресурс (изображение, шрифт и т.д.) */
    RESOURCE = "resource",
    /** Другое */
    OTHER = "other"
}
/**
 * Уровень серьезности циклической зависимости
 */
export declare enum CycleSeverity {
    /** Низкий - можно игнорировать */
    LOW = "low",
    /** Средний - стоит обратить внимание */
    MEDIUM = "medium",
    /** Высокий - требует исправления */
    HIGH = "high",
    /** Критический - срочно требует исправления */
    CRITICAL = "critical"
}
/**
 * Узел в графе зависимостей
 */
export interface DependencyNode {
    /** Путь к файлу */
    path: string;
    /** Тип файла */
    type: string;
    /** Структура файла */
    structure?: {
        /** Экспортируемые сущности */
        exports: string[];
        /** Импортируемые сущности */
        imports: string[];
        /** Классы */
        classes: string[];
        /** Функции */
        functions: string[];
        /** Интерфейсы */
        interfaces: string[];
    };
}
/**
 * Зависимость между файлами
 */
export interface Dependency {
    /** ID источника зависимости */
    sourceId: string;
    /** ID целевого файла */
    targetId: string;
    /** Тип зависимости */
    type: DependencyType;
    /** Вес зависимости (0-1) */
    weight: number;
}
/**
 * Циклическая зависимость
 */
export interface DependencyCycle {
    /** Путь цикла (список файлов) */
    path: string[];
    /** Степень серьезности */
    severity: CycleSeverity;
}
/**
 * Результат анализа графа зависимостей
 */
export interface DependencyGraphAnalysis {
    /** Циклические зависимости */
    cycles: DependencyCycle[];
    /** Статистика графа */
    statistics: {
        /** Общее количество узлов */
        totalNodes: number;
        /** Общее количество зависимостей */
        totalDependencies: number;
        /** Максимальная глубина графа */
        maxDepth: number;
        /** Количество внешних зависимостей */
        externalDependencies: number;
    };
}
/**
 * Параметры запроса зависимостей файла
 */
export interface FileDependenciesRequest {
    /** Путь к файлу */
    filePath: string;
}
/**
 * Результат запроса зависимостей файла
 */
export interface FileDependenciesResponse {
    /** Файлы, импортируемые в целевой файл */
    imports: string[];
    /** Файлы, импортирующие целевой файл */
    importedBy: string[];
    /** Экспорты целевого файла */
    exports: string[];
    /** Экспорты из импортируемых файлов */
    exportedBy: string[];
}
/**
 * Статистика зависимостей проекта
 */
export interface DependencyStatistics {
    /** Общее количество зависимостей */
    totalDependencies: number;
    /** Количество уникальных файлов */
    uniqueFiles: number;
    /** Количество импортов */
    importCount: number;
    /** Количество экспортов */
    exportCount: number;
    /** Количество циклических зависимостей */
    cyclicDependenciesCount: number;
}
/**
 * Информация о файле
 */
export interface FileDetails {
    /** Идентификатор файла */
    id: string;
    /** Путь к файлу */
    path: string;
    /** Язык программирования */
    language: string;
    /** Размер файла в байтах */
    size: number;
    /** Время последнего изменения (timestamp) */
    lastModified: number;
}
/**
 * Параметры запроса связанных компонентов
 */
export interface RelatedComponentsRequest {
    /** Путь к исходному файлу */
    filePath: string;
    /** Максимальная глубина поиска */
    maxDepth?: number;
    /** Включать входящие зависимости */
    includeIncoming?: boolean;
    /** Включать исходящие зависимости */
    includeOutgoing?: boolean;
    /** Максимальное количество узлов */
    maxNodes?: number;
}
/**
 * Результат запроса связанных компонентов
 */
export interface RelatedComponentsResponse {
    /** Исходный узел */
    source: DependencyNode;
    /** Связанные узлы с весами */
    nodes: {
        /** Узел зависимости */
        node: DependencyNode;
        /** Вес связи */
        weight: number;
        /** Расстояние от исходного узла */
        distance: number;
        /** Тип связи (incoming/outgoing) */
        relationType: 'incoming' | 'outgoing' | 'both';
    }[];
}
/**
 * Граф зависимостей проекта
 */
export interface DependencyGraph {
    /** Узлы графа */
    nodes: DependencyNode[];
    /** Связи между узлами */
    edges: Dependency[];
}
//# sourceMappingURL=types.d.ts.map