/**
 * Node imports
 */
export declare type IPTUPPLE = [number, number, number, number];
export declare type IPFORMATS = string | number | IPTUPPLE | OCTECTS;
/**
 * Octects definition
 */
export interface OCTECTS {
    readonly first: number;
    readonly second: number;
    readonly third: number;
    readonly fourth: number;
    add: (num: number) => OCTECTS;
    substract: (num: number) => OCTECTS;
    toArray: () => IPTUPPLE;
    toString: () => string;
    toBinary: () => string;
}
export declare const OCTECTSMIN: OCTECTS;
export declare const OCTECTSMAX: OCTECTS;
/**
 * CIDR information
 */
export interface CIDRInformation {
    readonly networkPrefix: string;
    readonly cidrBlock: number;
    readonly minIP: string;
    readonly maxIP: string;
    readonly subnetMask: string;
    readonly wilcardMask: string;
    readonly broadcastIP: string;
    readonly totalIPs: number;
}
/**
 * CIDR definition
 */
export interface CIDR {
    readonly inputIP: string;
    readonly inputCIDR: number;
    readonly ipOctects: OCTECTS;
    readonly cidrInformation: CIDRInformation;
    readonly maxSubnetCount: number;
    calculateCIDR: (cidr: number) => CIDRInformation;
    splitCIDR: (subnetCount: number) => CIDRInformation[];
    toString: () => string;
}
/**
 * CIDR module
 */
export declare const CIDRModule: {
    parseCIDR: (ip?: IPFORMATS | undefined, cidr?: string | number | undefined) => CIDR;
    parseOctects: (ip: IPFORMATS) => OCTECTS;
    cidrFromSubnetMask: (mask: string) => number;
    octectsFromIPString: (ip: string) => OCTECTS;
    octectsToNumber: (octs: OCTECTS) => number;
    numberToBinary: (num: number, sep?: string | undefined) => string;
    addToIP: (ip: IPFORMATS, num: number) => OCTECTS;
    substractFromIP: (ip: IPFORMATS, num: number) => OCTECTS;
};
//# sourceMappingURL=app-cidr.d.ts.map