import { type OverlapResult } from '../core/calculators/overlap-detector.js'; import type { AssignedBlock, NetworkPlan, Subnet } from '../core/models/network-plan.js'; export declare class NetworkPlanService { calculatePlan(plan: NetworkPlan): NetworkPlan; addSubnet(plan: NetworkPlan, subnet: Subnet): NetworkPlan; removeSubnet(plan: NetworkPlan, index: number): { plan: NetworkPlan; removed: Subnet | null; }; updateBaseIp(plan: NetworkPlan, newBaseIp: string): NetworkPlan; updateSubnet(plan: NetworkPlan, index: number, name: string, vlanId: number, expectedDevices: number, description?: string): NetworkPlan; setGrowthPercentage(plan: NetworkPlan, growthPercentage: number): NetworkPlan; checkOverlaps(plan: NetworkPlan): OverlapResult; setManualNetworkAddress(plan: NetworkPlan, index: number, networkAddress: string, lock: boolean): NetworkPlan; setNetworkLocked(plan: NetworkPlan, index: number, locked: boolean): NetworkPlan; setAssignedBlocks(plan: NetworkPlan, blocks: AssignedBlock[]): NetworkPlan; addAssignedBlock(plan: NetworkPlan, block: Omit): { plan: NetworkPlan; block: AssignedBlock; }; removeAssignedBlock(plan: NetworkPlan, blockId: string): { plan: NetworkPlan; removed: boolean; }; setSourceBlockId(plan: NetworkPlan, index: number, sourceBlockId: string | undefined): NetworkPlan; updateSpaceReport(plan: NetworkPlan): NetworkPlan; autoDetectSourceBlock(plan: NetworkPlan, index: number): { plan: NetworkPlan; sourceBlockId: string | undefined; }; }