import * as core from "@terrascript/core";
export interface ConditionsArgs extends core.SchemaArgs {
    key?: string | core.StringOut;
    operator?: string | core.StringOut;
    type: string | core.StringOut;
    value?: string | core.StringOut;
}
export declare class Conditions extends core.Schema<ConditionsArgs> {
    key?: string | core.StringOut;
    operator?: string | core.StringOut;
    type: string | core.StringOut;
    value?: string | core.StringOut;
}
export interface ActionArgs extends core.SchemaArgs {
    associationMethod: string | core.StringOut;
    requireAcceptance?: boolean | core.BooleanOut;
    segment?: string | core.StringOut;
    tagValueOfKey?: string | core.StringOut;
}
export declare class Action extends core.Schema<ActionArgs> {
    associationMethod: string | core.StringOut;
    requireAcceptance?: boolean | core.BooleanOut;
    segment?: string | core.StringOut;
    tagValueOfKey?: string | core.StringOut;
}
export interface AttachmentPoliciesArgs extends core.SchemaArgs {
    action: Action;
    conditionLogic?: string | core.StringOut;
    conditions: core.Array<Conditions> | core.ArrayOut<Conditions>;
    description?: string | core.StringOut;
    ruleNumber: number | core.NumberOut;
}
export declare class AttachmentPolicies extends core.Schema<AttachmentPoliciesArgs> {
    action: Action;
    conditionLogic?: string | core.StringOut;
    conditions: core.Array<Conditions> | core.ArrayOut<Conditions>;
    description?: string | core.StringOut;
    ruleNumber: number | core.NumberOut;
}
export interface EdgeLocationsArgs extends core.SchemaArgs {
    asn?: number | core.NumberOut;
    insideCidrBlocks?: core.Array<string> | core.ArrayOut<core.StringOut>;
    location: string | core.StringOut;
}
export declare class EdgeLocations extends core.Schema<EdgeLocationsArgs> {
    asn?: number | core.NumberOut;
    insideCidrBlocks?: core.Array<string> | core.ArrayOut<core.StringOut>;
    location: string | core.StringOut;
}
export interface CoreNetworkConfigurationArgs extends core.SchemaArgs {
    asnRanges: core.Array<string> | core.ArrayOut<core.StringOut>;
    edgeLocations: core.Array<EdgeLocations> | core.ArrayOut<EdgeLocations>;
    insideCidrBlocks?: core.Array<string> | core.ArrayOut<core.StringOut>;
    vpnEcmpSupport?: boolean | core.BooleanOut;
}
export declare class CoreNetworkConfiguration extends core.Schema<CoreNetworkConfigurationArgs> {
    asnRanges: core.Array<string> | core.ArrayOut<core.StringOut>;
    edgeLocations: core.Array<EdgeLocations> | core.ArrayOut<EdgeLocations>;
    insideCidrBlocks?: core.Array<string> | core.ArrayOut<core.StringOut>;
    vpnEcmpSupport?: boolean | core.BooleanOut;
}
export interface SegmentsArgs extends core.SchemaArgs {
    allowFilter?: core.Array<string> | core.ArrayOut<core.StringOut>;
    denyFilter?: core.Array<string> | core.ArrayOut<core.StringOut>;
    description?: string | core.StringOut;
    edgeLocations?: core.Array<string> | core.ArrayOut<core.StringOut>;
    isolateAttachments?: boolean | core.BooleanOut;
    name: string | core.StringOut;
    requireAttachmentAcceptance?: boolean | core.BooleanOut;
}
export declare class Segments extends core.Schema<SegmentsArgs> {
    allowFilter?: core.Array<string> | core.ArrayOut<core.StringOut>;
    denyFilter?: core.Array<string> | core.ArrayOut<core.StringOut>;
    description?: string | core.StringOut;
    edgeLocations?: core.Array<string> | core.ArrayOut<core.StringOut>;
    isolateAttachments?: boolean | core.BooleanOut;
    name: string | core.StringOut;
    requireAttachmentAcceptance?: boolean | core.BooleanOut;
}
export interface SegmentActionsArgs extends core.SchemaArgs {
    action: string | core.StringOut;
    description?: string | core.StringOut;
    destinationCidrBlocks?: core.Array<string> | core.ArrayOut<core.StringOut>;
    destinations?: core.Array<string> | core.ArrayOut<core.StringOut>;
    mode?: string | core.StringOut;
    segment: string | core.StringOut;
    shareWith?: core.Array<string> | core.ArrayOut<core.StringOut>;
    shareWithExcept?: core.Array<string> | core.ArrayOut<core.StringOut>;
}
export declare class SegmentActions extends core.Schema<SegmentActionsArgs> {
    action: string | core.StringOut;
    description?: string | core.StringOut;
    destinationCidrBlocks?: core.Array<string> | core.ArrayOut<core.StringOut>;
    destinations?: core.Array<string> | core.ArrayOut<core.StringOut>;
    mode?: string | core.StringOut;
    segment: string | core.StringOut;
    shareWith?: core.Array<string> | core.ArrayOut<core.StringOut>;
    shareWithExcept?: core.Array<string> | core.ArrayOut<core.StringOut>;
}
export interface DsCoreNetworkPolicyDocumentArgs {
    attachmentPolicies?: core.Array<AttachmentPolicies> | core.ArrayOut<AttachmentPolicies>;
    coreNetworkConfiguration: core.Array<CoreNetworkConfiguration> | core.ArrayOut<CoreNetworkConfiguration>;
    segmentActions?: core.Array<SegmentActions> | core.ArrayOut<SegmentActions>;
    segments: core.Array<Segments> | core.ArrayOut<Segments>;
    version?: string | core.StringOut;
}
export declare class DsCoreNetworkPolicyDocument extends core.Data<DsCoreNetworkPolicyDocumentArgs> {
    attachmentPolicies?: core.Array<AttachmentPolicies> | core.ArrayOut<AttachmentPolicies>;
    coreNetworkConfiguration: core.Array<CoreNetworkConfiguration> | core.ArrayOut<CoreNetworkConfiguration>;
    id: string | core.StringOut;
    json: string | core.StringOut;
    segmentActions?: core.Array<SegmentActions> | core.ArrayOut<SegmentActions>;
    segments: core.Array<Segments> | core.ArrayOut<Segments>;
    version?: string | core.StringOut;
    constructor(name: string, args?: DsCoreNetworkPolicyDocumentArgs);
    getNamespace(): string;
}
//# sourceMappingURL=ds_core_network_policy_document.d.ts.map