import { EncryptionService } from "../common/crypto/encryption.service";
import { PrismaService } from "../prisma/prisma.service";
import type { CreateProviderConfigDto } from "./dto/create-provider-config.dto";
import type { UpdateProviderConfigDto } from "./dto/update-provider-config.dto";
export declare class ProviderConfigService {
    private readonly prisma;
    private readonly encryption;
    constructor(prisma: PrismaService, encryption: EncryptionService);
    create(merchantId: string, dto: CreateProviderConfigDto): Promise<{
        id: string;
        merchantId: string;
        provider: import("@prisma/client").$Enums.Provider;
        mode: import("@prisma/client").$Enums.ProviderMode;
        country: string;
        fxStrategy: import("@prisma/client").$Enums.FxStrategy;
        priority: number;
        active: boolean;
        hasCredentials: boolean;
        createdAt: Date;
        updatedAt: Date;
    }>;
    findOne(merchantId: string, id: string): Promise<{
        id: string;
        merchantId: string;
        provider: import("@prisma/client").$Enums.Provider;
        mode: import("@prisma/client").$Enums.ProviderMode;
        country: string;
        fxStrategy: import("@prisma/client").$Enums.FxStrategy;
        priority: number;
        active: boolean;
        hasCredentials: boolean;
        createdAt: Date;
        updatedAt: Date;
    }>;
    list(merchantId: string, limit?: number, cursor?: string): Promise<{
        data: {
            id: string;
            merchantId: string;
            provider: import("@prisma/client").$Enums.Provider;
            mode: import("@prisma/client").$Enums.ProviderMode;
            country: string;
            fxStrategy: import("@prisma/client").$Enums.FxStrategy;
            priority: number;
            active: boolean;
            hasCredentials: boolean;
            createdAt: Date;
            updatedAt: Date;
        }[];
        nextCursor: string | null;
    }>;
    update(merchantId: string, id: string, dto: UpdateProviderConfigDto): Promise<{
        id: string;
        merchantId: string;
        provider: import("@prisma/client").$Enums.Provider;
        mode: import("@prisma/client").$Enums.ProviderMode;
        country: string;
        fxStrategy: import("@prisma/client").$Enums.FxStrategy;
        priority: number;
        active: boolean;
        hasCredentials: boolean;
        createdAt: Date;
        updatedAt: Date;
    }>;
    remove(merchantId: string, id: string): Promise<{
        id: string;
        deleted: boolean;
    }>;
    getDecryptedCredentials(merchantId: string, id: string): Promise<Record<string, unknown>>;
    private findOneRaw;
    private toDto;
}
