import { aws_networkmanager as networkmanager, aws_dynamodb as dynamo } from 'aws-cdk-lib';
import * as constructs from 'constructs';
import * as cloudWanEnum from './cloudWanEnum';
import { CoreNetworkSegment } from './coreNetworkSegment';
/**
 * Create a CoreNework for a Cloudwan
 */
export declare class CoreNetwork extends constructs.Construct {
    /**
       * The policyTable Lamba's Service Token
       */
    readonly policyTableServiceToken: string;
    /**
       * Name of the Dynamo Table holding the policy
       */
    readonly policyTableName: string;
    /**
       * THe dynamo table holding the policy
       */
    readonly policyTable: dynamo.Table;
    /**
       * The corenetwork object
       */
    readonly cfnCoreNetwork: networkmanager.CfnCoreNetwork;
    readonly coreName: string;
    updateProviderToken: string;
    private updateDependson;
    constructor(scope: constructs.Construct, id: string, props: cloudWanEnum.CoreNetworkProps);
    /**
       * Add a segment to the core network
       * @param props properties of the segment
       * @returns
       */
    addSegment(props: cloudWanEnum.Segment): CoreNetworkSegment;
    /**
       * Create a CoreNetwork Sharing
       * @param props Share properties
       */
    share(props: cloudWanEnum.CoreNetworkShare): void;
    /**
       * Update the corewan policy after actions, segments are added
       */
    updatePolicy(): void;
}
