import type { BespokeCompensation } from './bespokeCompensation';
import type { SuggestedTradingActions } from './distinctivenessCategories';
/**
 * Pure calculation: derives baseline units retained/enhanced and area habitat lost.
 *
 * Off-site enhancement of irreplaceable Individual trees is gated to 0; pass
 * `broadHabitat` to enable that branch. On-site callers omit it (the schema
 * already rejects this combination before the value is observed).
 */
export declare function calculateBaselineUnits(input: {
    irreplaceableHabitat: boolean;
    area: number;
    areaRetained: number;
    areaEnhanced: number;
    distinctivenessScore: number;
    conditionScore: number;
    strategicSignificanceMultiplier: number;
    broadHabitat?: string;
}): {
    baselineUnitsRetained: number;
    baselineUnitsEnhanced: number;
    areaHabitatLost: number;
};
/**
 * Pure calculation of hidden cell AT/AS, used later in the headline results.
 */
export declare function calculateVhdhBespokeCompensationUnits(input: {
    bespokeCompensationAgreed: BespokeCompensation;
    requiredAction: SuggestedTradingActions;
    totalHabitatUnits: number;
    baselineUnitsRetained: number;
    baselineUnitsEnhanced: number;
}): {
    vhdhBespokeCompensationUnits: number;
};
/**
 * Pure calculation: derives totalHabitatUnits.
 *
 * `irreplaceableHabitat` activates the irreplaceable branch (off-site behaviour).
 * Omit or pass `false` to skip it (on-site behaviour).
 */
export declare function calculateTotalHabitatUnits(input: {
    requiredAction: SuggestedTradingActions;
    area: number;
    areaRetained: number;
    areaEnhanced: number;
    bespokeCompensationAgreed: BespokeCompensation;
    baselineUnitsRetained: number;
    baselineUnitsEnhanced: number;
    distinctivenessScore: number;
    conditionScore: number;
    strategicSignificanceMultiplier: number;
    irreplaceableHabitat?: boolean;
}): {
    totalHabitatUnits: number;
};
/**
 * Pure calculation: derives habitatUnitsDelivered for habitat creation and (when
 * spatialRiskMultiplier is supplied) habitatUnitsDeliveredWithSpatialRisk.
 */
export declare function calculateHabitatUnitsDelivered(input: {
    area: number;
    distinctivenessScore: number;
    conditionScore: number;
    strategicSignificanceMultiplier: number;
    finalTimeToTargetMultiplier: number | undefined;
    difficultyMultiplierApplied: number;
    spatialRiskMultiplier?: number;
}): {
    habitatUnitsDelivered: number;
    habitatUnitsDeliveredWithSpatialRisk: number;
};
/**
 * Pure calculation: derives habitatUnitsDelivered for an enhancement and (when
 * spatialRiskMultiplier is supplied) habitatUnitsDeliveredWithSpatialRisk.
 */
export declare function calculateEnhancementUnitsDelivered(input: {
    area: number;
    baselineDistinctivenessScore: number;
    baselineConditionScore: number;
    distinctivenessScore: number;
    conditionScore: number;
    strategicSignificanceMultiplier: number;
    finalTimeToTargetMultiplier: number | undefined;
    difficultyMultiplierApplied: number;
    spatialRiskMultiplier?: number;
}): {
    habitatUnitsDelivered: number;
    habitatUnitsDeliveredWithSpatialRisk: number;
};
//# sourceMappingURL=habitatCalc.d.ts.map