import { EDocType } from '../../../general';
import { INatipayAddress } from '../../company';
import { ETabBillingCycle } from '../enums/tab-billing-cycle.enum';
import { ITabCustomer, ITabCustomerCallback, ITabCustomerItemDiscount, ITabCustomerNotificationChannelPreferences, ITabCustomerNotificationPreferences } from '../interfaces/i-tab-customer';
export declare class TabCustomerNotificationChannelPreferencesEntity implements ITabCustomerNotificationChannelPreferences {
    newSale: boolean;
    payment: boolean;
    dueDate: boolean;
    constructor(data?: Partial<TabCustomerNotificationChannelPreferencesEntity>);
}
export declare class TabCustomerNotificationPreferencesEntity implements ITabCustomerNotificationPreferences {
    whatsapp: ITabCustomerNotificationChannelPreferences;
    email: ITabCustomerNotificationChannelPreferences;
    constructor(data?: Partial<TabCustomerNotificationPreferencesEntity>);
}
export declare class TabCustomerItemDiscountEntity implements ITabCustomerItemDiscount {
    productId: number;
    discountPercent: number | null;
    discountAmount: number | null;
    surchargePercent: number | null;
    surchargeAmount: number | null;
    constructor(data?: Partial<TabCustomerItemDiscountEntity>);
}
export declare class TabCustomerEntity implements ITabCustomer {
    id: string;
    containerId: string;
    companyId: string;
    name: string;
    doc: string;
    docType: EDocType;
    externalRef: string | null;
    email: string | null;
    phoneNumber: string | null;
    internationalCode: string | null;
    address: INatipayAddress | null;
    billingCycle: ETabBillingCycle;
    creditLimit: number;
    requiresAuthCode: boolean;
    authCodeHash: string | null;
    blocked: boolean;
    blockedReason: string | null;
    discountPercent: number;
    surchargePercent: number;
    itemDiscounts: ITabCustomerItemDiscount[];
    notificationPreferences: ITabCustomerNotificationPreferences;
    callbacks: ITabCustomerCallback[];
    activeInvoiceId: string | null;
    invoiceSequence: number;
    tags: string[];
    active: boolean;
    createdAt: Date;
    updatedAt: Date;
    constructor(data?: Partial<TabCustomerEntity>);
}
