import { Repository } from 'typeorm';
import { ClsService } from 'nestjs-cls';
import { TaxSlabEntity } from '../../entities/tax-slab.entity';
import { TaxComponentEntity } from '../../entities/tax-component.entity';
import { UpsertTaxSlabDto, TaxComponentDto } from './dto/tax-slab.dto';
export declare class TaxSlabService {
    private readonly slabRepo;
    private readonly compRepo;
    private readonly cls;
    constructor(slabRepo: Repository<TaxSlabEntity>, compRepo: Repository<TaxComponentEntity>, cls: ClsService);
    private tenantId;
    private userId;
    listComponentsFor(tax_type_id: string): Promise<TaxComponentEntity[]>;
    upsertComponents(tax_type_id: string, components: TaxComponentDto[]): Promise<{
        applied: number;
    }>;
    private pruneStaleComponentRates;
    findForDestination(tax_type_id: string, destination_id: string): Promise<TaxSlabEntity | null>;
    listForDestination(destination_id: string): Promise<TaxSlabEntity[]>;
    listForTaxType(tax_type_id: string): Promise<TaxSlabEntity[]>;
    upsertSlab(dto: UpsertTaxSlabDto): Promise<{
        id: string;
        created: boolean;
        total_rate: number;
    }>;
    removeSlab(id: string): Promise<{
        message: string;
    }>;
}
