import * as core from "@terrascript/core";
export interface VirtualServiceArgs extends core.SchemaArgs {
    virtualServiceName: string | core.StringOut;
}
export declare class VirtualService extends core.Schema<VirtualServiceArgs> {
    virtualServiceName: string | core.StringOut;
}
export interface TargetArgs extends core.SchemaArgs {
    virtualService: VirtualService;
}
export declare class Target extends core.Schema<TargetArgs> {
    virtualService: VirtualService;
}
export interface GrpcRouteActionArgs extends core.SchemaArgs {
    target: Target;
}
export declare class GrpcRouteAction extends core.Schema<GrpcRouteActionArgs> {
    target: Target;
}
export interface GrpcRouteMatchArgs extends core.SchemaArgs {
    serviceName: string | core.StringOut;
}
export declare class GrpcRouteMatch extends core.Schema<GrpcRouteMatchArgs> {
    serviceName: string | core.StringOut;
}
export interface GrpcRouteArgs extends core.SchemaArgs {
    action: GrpcRouteAction;
    match: GrpcRouteMatch;
}
export declare class GrpcRoute extends core.Schema<GrpcRouteArgs> {
    action: GrpcRouteAction;
    match: GrpcRouteMatch;
}
export interface RewriteHostnameArgs extends core.SchemaArgs {
    defaultTargetHostname: string | core.StringOut;
}
export declare class RewriteHostname extends core.Schema<RewriteHostnameArgs> {
    defaultTargetHostname: string | core.StringOut;
}
export interface PrefixArgs extends core.SchemaArgs {
    defaultPrefix?: string | core.StringOut;
    value?: string | core.StringOut;
}
export declare class Prefix extends core.Schema<PrefixArgs> {
    defaultPrefix?: string | core.StringOut;
    value?: string | core.StringOut;
}
export interface RewriteArgs extends core.SchemaArgs {
    hostname?: RewriteHostname;
    prefix?: Prefix;
}
export declare class Rewrite extends core.Schema<RewriteArgs> {
    hostname?: RewriteHostname;
    prefix?: Prefix;
}
export interface Http2RouteActionArgs extends core.SchemaArgs {
    rewrite?: Rewrite;
    target: Target;
}
export declare class Http2RouteAction extends core.Schema<Http2RouteActionArgs> {
    rewrite?: Rewrite;
    target: Target;
}
export interface Http2RouteMatchHostnameArgs extends core.SchemaArgs {
    exact?: string | core.StringOut;
    suffix?: string | core.StringOut;
}
export declare class Http2RouteMatchHostname extends core.Schema<Http2RouteMatchHostnameArgs> {
    exact?: string | core.StringOut;
    suffix?: string | core.StringOut;
}
export interface Http2RouteMatchArgs extends core.SchemaArgs {
    hostname?: Http2RouteMatchHostname;
    prefix?: string | core.StringOut;
}
export declare class Http2RouteMatch extends core.Schema<Http2RouteMatchArgs> {
    hostname?: Http2RouteMatchHostname;
    prefix?: string | core.StringOut;
}
export interface Http2RouteArgs extends core.SchemaArgs {
    action: Http2RouteAction;
    match: Http2RouteMatch;
}
export declare class Http2Route extends core.Schema<Http2RouteArgs> {
    action: Http2RouteAction;
    match: Http2RouteMatch;
}
export interface HttpRouteArgs extends core.SchemaArgs {
    action: Http2RouteAction;
    match: Http2RouteMatch;
}
export declare class HttpRoute extends core.Schema<HttpRouteArgs> {
    action: Http2RouteAction;
    match: Http2RouteMatch;
}
export interface SpecArgs extends core.SchemaArgs {
    grpcRoute?: GrpcRoute;
    http2Route?: Http2Route;
    httpRoute?: HttpRoute;
}
export declare class Spec extends core.Schema<SpecArgs> {
    grpcRoute?: GrpcRoute;
    http2Route?: Http2Route;
    httpRoute?: HttpRoute;
}
export interface GatewayRouteArgs extends core.ResourceArgs {
    meshName: string | core.StringOut;
    meshOwner?: string | core.StringOut;
    name: string | core.StringOut;
    spec: Spec;
    tags?: core.Map<string, string> | core.MapOut<core.StringOut>;
    tagsAll?: core.Map<string, string> | core.MapOut<core.StringOut>;
    virtualGatewayName: string | core.StringOut;
}
export declare class GatewayRoute extends core.Resource<GatewayRouteArgs> {
    arn: string | core.StringOut;
    createdDate: string | core.StringOut;
    id: string | core.StringOut;
    lastUpdatedDate: string | core.StringOut;
    meshName: string | core.StringOut;
    meshOwner?: string | core.StringOut;
    name: string | core.StringOut;
    resourceOwner: string | core.StringOut;
    spec: Spec;
    tags?: core.Map<string, string> | core.MapOut<core.StringOut>;
    tagsAll?: core.Map<string, string> | core.MapOut<core.StringOut>;
    virtualGatewayName: string | core.StringOut;
    constructor(name: string, args?: GatewayRouteArgs);
    getNamespace(): string;
}
//# sourceMappingURL=gateway_route.d.ts.map