import { Context } from 'koishi';
import { Config } from '../index';
export declare function handlePrimaryAttack(ctx: Context, session: any, handle: string, config: Config, equippedWeapon: any, targetBoss: any, activeBosses: any[], weaponName: string): Promise<{
    initialDamage: number;
    currentHP: number;
    isDefeated: boolean;
    hasCrit: boolean;
    effectMessage: string[];
    passiveMessages: string[];
    ignoreMessage: any[];
    radiationApplied: boolean;
    freezing: boolean;
    bileStacks: boolean;
    pulseApplied: boolean;
    arcApplied: boolean;
}>;
export declare function handleScatterAttack(ctx: Context, session: any, handle: string, config: Config, equippedWeapon: any, targetBoss: any, weaponName: string, activeBosses: 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[];
    cleanerBroadcast: 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, cleanerRewardBroadcast: string[] | null): Promise<void>;
export declare function updateBossDamageRecord(ctx: Context, handle: string, playerName: string, bossGroupId: number, 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): Promise<{
    initialDamage: number;
    hasCrit: boolean;
    effectMessage: string[];
    passiveMessages: string[];
    ignoreMessage: any[];
}>;
