import { Construct } from "constructs";
import { Resource, ResourceProps } from "./resource";
import * as spec from "./spec/threatgile.generated";
import { TechnicalAsset } from "./technical-asset";
export interface TrustBoundaryProps extends ResourceProps {
    readonly type: TrustBoundaryType;
    readonly tags?: string[];
}
export declare class TrustBoundary extends Resource {
    readonly type: TrustBoundaryType;
    readonly tags?: string[];
    private technicalAssetsInside;
    private trustBoundariesNested;
    constructor(scope: Construct, id: string, props: TrustBoundaryProps);
    addTechnicalAssets(...assets: TechnicalAsset[]): void;
    addTrustBoundary(boundary: TrustBoundary): void;
    isWithinCloud(): boolean;
    isNetworkBoundary(): boolean;
    /**
     * @internal
     */
    _toThreagile(): spec.Threagile["trust_boundaries"];
}
export declare enum TrustBoundaryType {
    NETWORK_ON_PREM = "network-on-prem",
    NETWORK_DEDICATED_HOSTER = "network-dedicated-hoster",
    NETWORK_VIRTUAL_LAN = "network-virtual-lan",
    NETWORK_CLOUD_PROVIDER = "network-cloud-provider",
    NETWORK_CLOUD_SECURITY_GROUP = "network-cloud-security-group",
    NETWORK_POLICY_NAMESPACE_ISOLATION = "network-policy-namespace-isolation",
    EXECUTION_ENVIRONMENT = "execution-environment"
}
