import { Context } from 'koishi';
import { Config } from '../index';
export declare function handleAttack(ctx: Context, session: any, handle: string, config: Config, equippedWeapon: any, targetBoss: any, activeBosses: any[], weaponName: string, careerData: any, isScatterAttack?: boolean, scatterRatio?: number): Promise<{
    damage: number;
    currentHP: any;
    isDefeated: boolean;
    hasCrit: boolean;
    effectMessage: string[];
    passiveMessages: string[];
    ignoreMessage: any[];
    radiationApplied: boolean;
    freezing: boolean;
    bileStacks: boolean;
    pulseApplied: boolean;
    arcApplied: boolean;
    pulseGrenadeTriggered: boolean;
    burnLayerAdded: boolean;
    drainFactor: number;
    reductionAmount: number;
    taskUpdates: {
        taskId: number;
        count: number;
    }[];
}>;
export declare function handleScatterAttack(ctx: Context, session: any, handle: string, config: Config, equippedWeapon: any, targetBoss: any, weaponName: string, activeBosses: any[], careerData: any): Promise<{
    scatterEffectMessages: string[];
    extraDamages: {
        name: string;
        damage: number;
    }[];
    actuallyDead: string[];
    taskUpdates: {
        taskId: number;
        count: number;
    }[];
}>;
export declare function handleDeathTargets(ctx: Context, deadTargets: any[], killerName: string, killerHandle: string): Promise<{
    bossBroadcast: string[];
}>;
export declare function calculateRewards(ctx: Context, handle: string, totalDamage: number): Promise<{
    finalReward: number;
    careerMessage: string;
    redcrystalMessage: string;
    techMessage: string;
}>;
export declare function updateSignRecord(ctx: Context, handle: string, reward: number): Promise<void>;
export declare function buildResultMessage(session: any, weaponName: string, targetBoss: any, primaryResult: any, scatterResult: any, finalReward: number, careerMessage: string, techMessage: string, redcrystalMessage: string): string;
export declare function handleBroadcasts(ctx: Context, groupIds: string[], bossEventBroadcast: string[] | string | null): Promise<void>;
export declare function updateBossDamageRecord(ctx: Context, handle: string, playerName: string, damageAmount: number): Promise<void>;
export declare function updateTaskProgress(ctx: Context, handle: string, taskUpdates: {
    taskId: number;
    count: number;
}[]): Promise<void>;
export declare function testAttackFunction(ctx: Context, session: any, handle: string, config: Config, equippedWeapon: any, targetBoss: any, activeBosses: any[], weaponName: string, careerData: any): Promise<{
    initialDamage: number;
    hasCrit: boolean;
    effectMessage: string[];
    passiveMessages: string[];
    ignoreMessage: any[];
}>;
export declare function createNestlingBosses(ctx: any, nestlingNames: string | string[]): Promise<any[]>;
export declare function verifyFinalBlow(ctx: any, session: any, bossName: string, targetBoss: any, activeBosses: any): Promise<{
    success: boolean;
    updatedBoss?: any;
    verificationPassed?: boolean;
}>;
