import type { AssignedBlock, AvailableFragment, SpaceAllocationReport, Subnet } from '../models/network-plan.js'; interface IpRange { startInt: number; endInt: number; } export declare function rangeToOptimalCIDRBlocks(parentBlockId: string, startInt: number, endInt: number): AvailableFragment[]; export declare function findFreeRanges(block: AssignedBlock, allocatedRanges: IpRange[]): IpRange[]; export declare function calculateAvailableSpace(assignedBlocks: AssignedBlock[] | undefined, subnets: Subnet[]): SpaceAllocationReport; export declare function findSourceBlock(networkAddress: string, assignedBlocks: AssignedBlock[] | undefined): string | undefined; export interface AllocationAttempt { success: boolean; networkAddress?: string; sourceBlockId?: string; error?: string; } export declare function tryAllocateSubnetToAvailableSpace(subnet: Subnet, spaceReport: SpaceAllocationReport): AllocationAttempt; export interface SubnetFitCheck { fits: boolean; requiredSize: number; requiredCidr: number; largestAvailable: number; largestAvailableCidr: number; } export declare function checkSubnetFit(requiredSize: number, requiredCidr: number, spaceReport: SpaceAllocationReport): SubnetFitCheck; export {};