import type { PrismaService } from './prisma.service';
export declare function getMerchant(prisma: PrismaService): Promise<{
    shop: string;
    id: string;
    programName: string | null;
    autoApprove: boolean;
    cookieDays: number;
    attribution: import("@prisma/client").$Enums.AttributionRule;
    commissionBase: import("@prisma/client").$Enums.CommissionBase;
    defaultCommissionType: import("@prisma/client").$Enums.CommissionType;
    defaultCommissionValue: import("@prisma/client/runtime/library").Decimal;
    minPayout: import("@prisma/client/runtime/library").Decimal;
    portalSubdomain: string | null;
    logoUrl: string | null;
    brandColor: string | null;
    brandSecondaryColor: string | null;
    termsText: string | null;
    shopifyAccessToken: string | null;
    shopifyScopes: string | null;
    appInstalled: boolean;
    installedAt: Date | null;
    uninstalledAt: Date | null;
    createdAt: Date;
    updatedAt: Date;
    notifications: import("@prisma/client/runtime/library").JsonValue | null;
    signupDefaults: import("@prisma/client/runtime/library").JsonValue | null;
    autoCoupon: import("@prisma/client/runtime/library").JsonValue | null;
    autoApplyDiscount: boolean;
    defaultCouponCode: string | null;
    payoutMethods: string[];
    commissionNewCustomersOnly: boolean;
    excludeSelfPurchase: boolean;
    recordNilSales: boolean;
    verifySalesAutomatically: boolean;
    commissionHoldDays: number;
    postCheckoutEnabled: boolean;
    postCheckoutHeading: string;
    postCheckoutText: string;
    postCheckoutButton: string;
    customerAffiliateConnect: boolean;
    mlmEnabled: boolean;
    mlmLevels: import("@prisma/client/runtime/library").JsonValue | null;
    timezone: string;
    removeTrackingAfterOrder: boolean;
    recaptchaEnabled: boolean;
    recaptchaSiteKey: string | null;
    recaptchaSecret: string | null;
    payoutScheduleEnabled: boolean;
    payoutScheduleDay: number;
    marcadeoAdvertiserId: string | null;
}>;
export declare function payableBalance(prisma: PrismaService, affiliate: {
    id: string;
    balance: unknown;
}, holdDays: number): Promise<{
    payable: number;
    held: number;
}>;
export declare function maskEmail(email?: string | null): string | undefined;
export declare function logDataAccess(prisma: PrismaService, merchantId: string | null, action: string, subject?: string): Promise<void>;
export declare function verifyRecaptcha(secret: string, token?: string): Promise<boolean>;
export declare function genCode(name: string): string;
export declare function hashPassword(pw: string): string;
export declare function verifyPassword(pw: string, stored?: string | null): boolean;
export declare function logEmail(prisma: PrismaService, merchantId: string, toEmail: string, type: string, subject: string, body?: string): Promise<void>;
type CommissionInputs = {
    merchant: {
        commissionBase: 'SUBTOTAL' | 'TOTAL';
        defaultCommissionType: 'PERCENT' | 'FLAT';
        defaultCommissionValue: unknown;
    };
    affiliate: {
        commissionType: 'PERCENT' | 'FLAT' | null;
        commissionValue: unknown;
        group?: {
            type: 'PERCENT' | 'FLAT';
            value: unknown;
            tiers?: unknown;
        } | null;
    };
    subtotal: number;
    total: number;
    salesThisMonth?: number;
};
export declare function calcCommission(i: CommissionInputs): {
    commission: number;
    type: "PERCENT" | "FLAT";
    value: number;
    source: string;
};
export {};
