import * as core from "@terrascript/core";
export interface EndpointArgs extends core.SchemaArgs {
    id: string | core.StringOut;
    region?: string | core.StringOut;
    type?: string | core.StringOut;
    value?: string | core.StringOut;
}
export declare class Endpoint extends core.Schema<EndpointArgs> {
    id: string | core.StringOut;
    region?: string | core.StringOut;
    type?: string | core.StringOut;
    value?: string | core.StringOut;
}
export interface RegionArgs extends core.SchemaArgs {
    endpointReference?: string | core.StringOut;
    evaluateTargetHealth?: boolean | core.BooleanOut;
    healthCheck?: string | core.StringOut;
    region?: string | core.StringOut;
    ruleReference?: string | core.StringOut;
}
export declare class Region extends core.Schema<RegionArgs> {
    endpointReference?: string | core.StringOut;
    evaluateTargetHealth?: boolean | core.BooleanOut;
    healthCheck?: string | core.StringOut;
    region?: string | core.StringOut;
    ruleReference?: string | core.StringOut;
}
export interface ItemsArgs extends core.SchemaArgs {
    endpointReference?: string | core.StringOut;
    healthCheck?: string | core.StringOut;
}
export declare class Items extends core.Schema<ItemsArgs> {
    endpointReference?: string | core.StringOut;
    healthCheck?: string | core.StringOut;
}
export interface PrimaryArgs extends core.SchemaArgs {
    endpointReference?: string | core.StringOut;
    evaluateTargetHealth?: boolean | core.BooleanOut;
    healthCheck?: string | core.StringOut;
    ruleReference?: string | core.StringOut;
}
export declare class Primary extends core.Schema<PrimaryArgs> {
    endpointReference?: string | core.StringOut;
    evaluateTargetHealth?: boolean | core.BooleanOut;
    healthCheck?: string | core.StringOut;
    ruleReference?: string | core.StringOut;
}
export interface SecondaryArgs extends core.SchemaArgs {
    endpointReference?: string | core.StringOut;
    evaluateTargetHealth?: boolean | core.BooleanOut;
    healthCheck?: string | core.StringOut;
    ruleReference?: string | core.StringOut;
}
export declare class Secondary extends core.Schema<SecondaryArgs> {
    endpointReference?: string | core.StringOut;
    evaluateTargetHealth?: boolean | core.BooleanOut;
    healthCheck?: string | core.StringOut;
    ruleReference?: string | core.StringOut;
}
export interface LocationArgs extends core.SchemaArgs {
    continent?: string | core.StringOut;
    country?: string | core.StringOut;
    endpointReference?: string | core.StringOut;
    evaluateTargetHealth?: boolean | core.BooleanOut;
    healthCheck?: string | core.StringOut;
    isDefault?: boolean | core.BooleanOut;
    ruleReference?: string | core.StringOut;
    subdivision?: string | core.StringOut;
}
export declare class Location extends core.Schema<LocationArgs> {
    continent?: string | core.StringOut;
    country?: string | core.StringOut;
    endpointReference?: string | core.StringOut;
    evaluateTargetHealth?: boolean | core.BooleanOut;
    healthCheck?: string | core.StringOut;
    isDefault?: boolean | core.BooleanOut;
    ruleReference?: string | core.StringOut;
    subdivision?: string | core.StringOut;
}
export interface GeoProximityLocationArgs extends core.SchemaArgs {
    bias?: string | core.StringOut;
    endpointReference?: string | core.StringOut;
    evaluateTargetHealth?: boolean | core.BooleanOut;
    healthCheck?: string | core.StringOut;
    latitude?: string | core.StringOut;
    longitude?: string | core.StringOut;
    region?: string | core.StringOut;
    ruleReference?: string | core.StringOut;
}
export declare class GeoProximityLocation extends core.Schema<GeoProximityLocationArgs> {
    bias?: string | core.StringOut;
    endpointReference?: string | core.StringOut;
    evaluateTargetHealth?: boolean | core.BooleanOut;
    healthCheck?: string | core.StringOut;
    latitude?: string | core.StringOut;
    longitude?: string | core.StringOut;
    region?: string | core.StringOut;
    ruleReference?: string | core.StringOut;
}
export interface RuleArgs extends core.SchemaArgs {
    geoProximityLocation?: core.Array<GeoProximityLocation> | core.ArrayOut<GeoProximityLocation>;
    id: string | core.StringOut;
    items?: core.Array<Items> | core.ArrayOut<Items>;
    location?: core.Array<Location> | core.ArrayOut<Location>;
    primary?: Primary;
    region?: core.Array<Region> | core.ArrayOut<Region>;
    secondary?: Secondary;
    type?: string | core.StringOut;
}
export declare class Rule extends core.Schema<RuleArgs> {
    geoProximityLocation?: core.Array<GeoProximityLocation> | core.ArrayOut<GeoProximityLocation>;
    id: string | core.StringOut;
    items?: core.Array<Items> | core.ArrayOut<Items>;
    location?: core.Array<Location> | core.ArrayOut<Location>;
    primary?: Primary;
    region?: core.Array<Region> | core.ArrayOut<Region>;
    secondary?: Secondary;
    type?: string | core.StringOut;
}
export interface DsTrafficPolicyDocumentArgs {
    endpoint?: core.Array<Endpoint> | core.ArrayOut<Endpoint>;
    recordType?: string | core.StringOut;
    rule?: core.Array<Rule> | core.ArrayOut<Rule>;
    startEndpoint?: string | core.StringOut;
    startRule?: string | core.StringOut;
    version?: string | core.StringOut;
}
export declare class DsTrafficPolicyDocument extends core.Data<DsTrafficPolicyDocumentArgs> {
    endpoint?: core.Array<Endpoint> | core.ArrayOut<Endpoint>;
    id: string | core.StringOut;
    json: string | core.StringOut;
    recordType?: string | core.StringOut;
    rule?: core.Array<Rule> | core.ArrayOut<Rule>;
    startEndpoint?: string | core.StringOut;
    startRule?: string | core.StringOut;
    version?: string | core.StringOut;
    constructor(name: string, args?: DsTrafficPolicyDocumentArgs);
    getNamespace(): string;
}
//# sourceMappingURL=ds_traffic_policy_document.d.ts.map