import type { Config as ProviderConfig } from '../models/Provider.js';
import type { Orchestrator } from '../clients/orchestrator.js';
import type { AuthModeType, DBCreateIntegration, IntegrationConfig, Provider } from '@nangohq/types';
interface ValidationRule {
    field: keyof ProviderConfig | 'app_id' | 'private_key';
    modes: AuthModeType[];
    isValid(config: ProviderConfig): boolean;
}
declare class ConfigService {
    getIdByProviderConfigKey(environment_id: number, providerConfigKey: string): Promise<number | null>;
    getProviderConfig(providerConfigKey: string, environment_id: number): Promise<ProviderConfig | null>;
    listProviderConfigs(environment_id: number): Promise<ProviderConfig[]>;
    listIntegrationForApi(environment_id: number): Promise<(ProviderConfig & {
        connection_count: string;
    })[]>;
    createProviderConfig(config: DBCreateIntegration, provider: Provider): Promise<IntegrationConfig | null>;
    createEmptyProviderConfig(providerName: string, environment_id: number, provider: Provider): Promise<IntegrationConfig>;
    deleteProviderConfig({ id, environmentId, providerConfigKey, orchestrator }: {
        id: number;
        environmentId: number;
        providerConfigKey: string;
        orchestrator: Orchestrator;
    }): Promise<boolean>;
    editProviderConfig(config: ProviderConfig): Promise<number>;
    getConfigIdByProvider(provider: string, environment_id: number): Promise<{
        id: number;
        unique_key: string;
    } | null>;
    copyProviderConfigCreds(fromEnvironmentId: number, toEnvironmentId: number, providerConfigKey: string): Promise<{
        copiedToId: number;
        copiedFromId: number;
    } | null>;
    VALIDATION_RULES: ValidationRule[];
    validateProviderConfig(authMode: AuthModeType, providerConfig: ProviderConfig): string[];
}
declare const _default: ConfigService;
export default _default;
