export type WeaponKind = "laser" | "missile" | "plasma";
export type FpsWeaponType = "pistol" | "rifle" | "shotgun";
export type FpsFiringMode = "single" | "auto" | "burst";
export type FpsEnemyTacticalState = "idle" | "patrol" | "chase" | "attack" | "flee" | "take_cover" | "investigate" | "dead";
export type FpsPickupType = "health" | "ammo";
export type SpaceShooterEnemyType = "fighter" | "bomber" | "turret" | "carrier" | "boss";
export type SpaceShooterFormation = "line" | "v-formation" | "surround" | "random" | "sides";
export type SpaceShooterPowerUpType = "health" | "shield" | "weapon" | "speed" | "life" | "multiplier";
export interface WeaponBurstInput {
    readonly kind: WeaponKind;
    readonly level?: number;
    readonly x?: number;
    readonly y?: number;
    readonly angle?: number;
    readonly secondary?: boolean;
    readonly ammo?: number;
}
export interface WeaponProjectile {
    readonly x: number;
    readonly y: number;
    readonly vx: number;
    readonly vy: number;
    readonly damage: number;
    readonly lifetime: number;
}
export interface WeaponBurst {
    readonly kind: WeaponKind;
    readonly level: number;
    readonly secondary: boolean;
    readonly projectileCount: number;
    readonly ammoSpent: number;
    readonly totalDamage: number;
    readonly spreadRadians: number;
    readonly projectiles: readonly WeaponProjectile[];
    readonly source: "origin-master-space-shooter-weapons-adapted";
    readonly claimBoundary: string;
}
export interface FpsWeaponCycleInput {
    readonly weapon: FpsWeaponType;
    readonly elapsedSeconds?: number;
    readonly triggerHeld?: boolean;
    readonly reloadRequested?: boolean;
    readonly currentAmmo?: number;
    readonly reserveAmmo?: number;
    readonly fireTimer?: number;
    readonly seed?: number;
}
export interface FpsWeaponCycleSample {
    readonly weapon: FpsWeaponType;
    readonly name: string;
    readonly firingMode: FpsFiringMode;
    readonly fired: boolean;
    readonly emptyClick: boolean;
    readonly reloading: boolean;
    readonly reloadComplete: boolean;
    readonly currentAmmo: number;
    readonly reserveAmmo: number;
    readonly ammoSpent: number;
    readonly bulletsPerShot: number;
    readonly totalDamage: number;
    readonly range: number;
    readonly spreadDegrees: number;
    readonly recoilX: number;
    readonly recoilY: number;
    readonly fireCooldown: number;
    readonly muzzleFlashSeconds: number;
    readonly shellEjectionSeconds: number;
    readonly source: "origin-master-fps-weapon-adapted";
    readonly claimBoundary: string;
}
export interface FpsEnemyTacticsInput {
    readonly currentState?: FpsEnemyTacticalState;
    readonly playerAlive?: boolean;
    readonly distanceToPlayer: number;
    readonly angleToPlayerDegrees?: number;
    readonly health?: number;
    readonly maxHealth?: number;
    readonly attackTimer?: number;
    readonly stateTimer?: number;
    readonly hasCover?: boolean;
    readonly distanceToCover?: number;
    readonly hasLastKnownPlayerPosition?: boolean;
    readonly distanceToLastKnownPlayerPosition?: number;
}
export interface FpsEnemyTacticsSample {
    readonly state: FpsEnemyTacticalState;
    readonly canSeePlayer: boolean;
    readonly canHearPlayer: boolean;
    readonly targetAcquired: boolean;
    readonly movementSpeed: number;
    readonly attackReady: boolean;
    readonly pathRefreshRequested: boolean;
    readonly coverRequested: boolean;
    readonly inCover: boolean;
    readonly nextAction: "wait" | "patrol" | "chase" | "attack" | "flee" | "move_to_cover" | "investigate" | "die";
    readonly source: "origin-master-fps-enemy-ai-adapted";
    readonly claimBoundary: string;
}
export interface FpsLevelLayoutInput {
    readonly seed?: number;
    readonly roomCount?: number;
    readonly gridSize?: number;
}
export interface FpsLevelRoom {
    readonly id: string;
    readonly x: number;
    readonly z: number;
    readonly width: number;
    readonly depth: number;
}
export interface FpsLevelCorridor {
    readonly from: string;
    readonly to: string;
    readonly length: number;
    readonly width: number;
}
export interface FpsLevelPoint {
    readonly id: string;
    readonly x: number;
    readonly z: number;
}
export interface FpsLevelPickup extends FpsLevelPoint {
    readonly type: FpsPickupType;
}
export interface FpsLevelLayoutSample {
    readonly rooms: readonly FpsLevelRoom[];
    readonly corridors: readonly FpsLevelCorridor[];
    readonly coverPoints: readonly FpsLevelPoint[];
    readonly patrolPoints: readonly FpsLevelPoint[];
    readonly enemySpawnPoints: readonly FpsLevelPoint[];
    readonly pickupSpawnPoints: readonly FpsLevelPickup[];
    readonly playerSpawnPoint: FpsLevelPoint;
    readonly navMeshPointCount: number;
    readonly averageRoomArea: number;
    readonly totalCorridorLength: number;
    readonly source: "origin-master-fps-level-adapted";
    readonly claimBoundary: string;
}
export interface FpsHudOverlayInput {
    readonly health: number;
    readonly maxHealth?: number;
    readonly ammo: number;
    readonly reserveAmmo: number;
    readonly score?: number;
    readonly wave?: number;
    readonly enemiesRemaining?: number;
    readonly recentDamage?: number;
    readonly hitMarker?: boolean;
    readonly damageAngleDegrees?: number;
    readonly minimapFriendlyCount?: number;
    readonly minimapEnemyCount?: number;
    readonly killFeedCount?: number;
}
export interface FpsHudOverlaySample {
    readonly healthPercent: number;
    readonly healthBarPixels: number;
    readonly lowHealth: boolean;
    readonly damageFlashAlpha: number;
    readonly ammoText: string;
    readonly ammoWarning: boolean;
    readonly crosshairSpreadPixels: number;
    readonly hitMarkerVisible: boolean;
    readonly damageIndicatorAngleDegrees: number;
    readonly minimapBlips: number;
    readonly killFeedVisible: boolean;
    readonly waveText: string;
    readonly source: "origin-master-fps-hud-adapted";
    readonly claimBoundary: string;
}
export interface SpaceShooterWaveInput {
    readonly wave: number;
    readonly width?: number;
    readonly height?: number;
    readonly seed?: number;
}
export interface SpaceShooterSpawn {
    readonly enemyType: SpaceShooterEnemyType;
    readonly x: number;
    readonly y: number;
    readonly health: number;
    readonly radius: number;
    readonly scoreValue: number;
}
export interface SpaceShooterWaveSample {
    readonly wave: number;
    readonly enemyType: SpaceShooterEnemyType;
    readonly formation: SpaceShooterFormation;
    readonly count: number;
    readonly delay: number;
    readonly bossWave: boolean;
    readonly difficultyScale: number;
    readonly totalScoreValue: number;
    readonly spawns: readonly SpaceShooterSpawn[];
    readonly powerUpType: SpaceShooterPowerUpType;
    readonly powerUpWeight: number;
    readonly source: "origin-master-space-shooter-wave-powerup-adapted";
    readonly claimBoundary: string;
}
export interface PowerUpEffectInput {
    readonly type: SpaceShooterPowerUpType;
    readonly health?: number;
    readonly maxHealth?: number;
    readonly shield?: number;
    readonly maxShield?: number;
    readonly weaponLevel?: number;
    readonly speed?: number;
    readonly lives?: number;
    readonly multiplier?: number;
}
export interface PowerUpEffectSample {
    readonly type: SpaceShooterPowerUpType;
    readonly health: number;
    readonly shield: number;
    readonly weaponLevel: number;
    readonly speed: number;
    readonly lives: number;
    readonly multiplier: number;
    readonly changedFields: readonly string[];
    readonly source: "origin-master-space-shooter-powerup-effects-adapted";
}
export declare function sampleWeaponBurst(input: WeaponBurstInput): WeaponBurst;
export declare function sampleFpsWeaponCycle(input: FpsWeaponCycleInput): FpsWeaponCycleSample;
export declare function sampleFpsEnemyTactics(input: FpsEnemyTacticsInput): FpsEnemyTacticsSample;
export declare function sampleFpsLevelLayout(input?: FpsLevelLayoutInput): FpsLevelLayoutSample;
export declare function sampleFpsHudOverlay(input: FpsHudOverlayInput): FpsHudOverlaySample;
export declare function sampleSpaceShooterWave(input: SpaceShooterWaveInput): SpaceShooterWaveSample;
export declare function samplePowerUpEffect(input: PowerUpEffectInput): PowerUpEffectSample;
//# sourceMappingURL=WeaponSystem.d.ts.map