import type { FleetStore } from '../fleet';
import type { CapacityPool, PlacementDecision, PlacementRequirements, WorkloadPlacement } from './types';
import { PlacementStore } from './store';
export declare class PlacementService {
    readonly store: PlacementStore;
    readonly fleet: FleetStore;
    constructor(store: PlacementStore, fleet: FleetStore);
    private poolCandidates;
    private serverReasons;
    private decision;
    explain(projectId: string, requirements: PlacementRequirements): PlacementDecision[];
    place(input: {
        projectId: string;
        environmentId?: string;
        resourceId: string;
        releaseId?: string;
        requirements: PlacementRequirements;
    }): WorkloadPlacement;
    activate(id: string): WorkloadPlacement;
    release(id: string): WorkloadPlacement;
    drainPool(id: string): {
        pool: CapacityPool;
        moved: WorkloadPlacement[];
        blocked: WorkloadPlacement[];
    };
    drainServer(poolId: string, serverId: string): {
        moved: WorkloadPlacement[];
        blocked: WorkloadPlacement[];
    };
    reconcileFailure(serverId: string): {
        rescheduled: WorkloadPlacement[];
        blocked: WorkloadPlacement[];
    };
}
