import { AppConfig } from '../common/config/configuration';
import { PrismaService } from '../common/prisma/prisma.service';
import { AuditService } from '../audit/audit.service';
import { IngestOptions, IngestionService, PublishMode } from './ingestion.service';
export declare class SourcesService {
    private readonly prisma;
    private readonly ingestion;
    private readonly audit;
    private readonly config;
    constructor(prisma: PrismaService, ingestion: IngestionService, audit: AuditService, config: AppConfig);
    list(): Promise<{
        items: {
            name: string;
            displayName: string;
            integrationType: string;
            availability: string;
            logoKey: string;
            configurable: boolean;
            syncable: boolean;
            enabled: boolean;
            configured: boolean;
            credentialSource: string;
            frequencyHours: number | null;
            lastError: string | null;
            lastSyncedAt: string | null;
            jobsImported: number;
            jobsActive: number;
            connectionHealth: string;
            lastImport: {
                accepted: number;
                rejected: number;
                status: string;
                createdAt: string;
            } | null;
        }[];
    }>;
    update(adminId: string, name: string, input: {
        enabled?: boolean;
        frequencyHours?: number | null;
        clearCredentials?: boolean;
        appId?: string;
        appKey?: string;
        apiKey?: string;
        boardToken?: string;
        site?: string;
        subdomain?: string;
        feedUrl?: string;
    }): Promise<{
        name: string;
        displayName: string;
        integrationType: string;
        availability: string;
        logoKey: string;
        configurable: boolean;
        syncable: boolean;
        enabled: boolean;
        configured: boolean;
        credentialSource: string;
        frequencyHours: number | null;
        lastError: string | null;
        lastSyncedAt: string | null;
        jobsImported: number;
        jobsActive: number;
        connectionHealth: string;
        lastImport: {
            accepted: number;
            rejected: number;
            status: string;
            createdAt: string;
        } | null;
    } | undefined>;
    sync(name: string, keywords?: string, options?: IngestOptions & {
        publishMode?: PublishMode;
    }): Promise<import("./ingestion.service").IngestResult>;
    syncDueSources(): Promise<(import("./ingestion.service").IngestResult | {
        source: string;
        error: string;
    })[]>;
    syncAllActive(adminId: string): Promise<{
        results: (import("./ingestion.service").IngestResult | {
            source: string;
            error: string;
        })[];
    }>;
    private buildProvider;
    private isConfigured;
    private environmentConfigured;
    private readCredentials;
}
