import * as core from "@terrascript/core";
export interface AuthenticateCognitoArgs extends core.SchemaArgs {
    authenticationRequestExtraParams: core.Map<string, string> | core.MapOut<core.StringOut>;
    onUnauthenticatedRequest: string | core.StringOut;
    scope: string | core.StringOut;
    sessionCookieName: string | core.StringOut;
    sessionTimeout: number | core.NumberOut;
    userPoolArn: string | core.StringOut;
    userPoolClientId: string | core.StringOut;
    userPoolDomain: string | core.StringOut;
}
export declare class AuthenticateCognito extends core.Schema<AuthenticateCognitoArgs> {
    authenticationRequestExtraParams: core.Map<string, string> | core.MapOut<core.StringOut>;
    onUnauthenticatedRequest: string | core.StringOut;
    scope: string | core.StringOut;
    sessionCookieName: string | core.StringOut;
    sessionTimeout: number | core.NumberOut;
    userPoolArn: string | core.StringOut;
    userPoolClientId: string | core.StringOut;
    userPoolDomain: string | core.StringOut;
}
export interface AuthenticateOidcArgs extends core.SchemaArgs {
    authenticationRequestExtraParams: core.Map<string, string> | core.MapOut<core.StringOut>;
    authorizationEndpoint: string | core.StringOut;
    clientId: string | core.StringOut;
    clientSecret: string | core.StringOut;
    issuer: string | core.StringOut;
    onUnauthenticatedRequest: string | core.StringOut;
    scope: string | core.StringOut;
    sessionCookieName: string | core.StringOut;
    sessionTimeout: number | core.NumberOut;
    tokenEndpoint: string | core.StringOut;
    userInfoEndpoint: string | core.StringOut;
}
export declare class AuthenticateOidc extends core.Schema<AuthenticateOidcArgs> {
    authenticationRequestExtraParams: core.Map<string, string> | core.MapOut<core.StringOut>;
    authorizationEndpoint: string | core.StringOut;
    clientId: string | core.StringOut;
    clientSecret: string | core.StringOut;
    issuer: string | core.StringOut;
    onUnauthenticatedRequest: string | core.StringOut;
    scope: string | core.StringOut;
    sessionCookieName: string | core.StringOut;
    sessionTimeout: number | core.NumberOut;
    tokenEndpoint: string | core.StringOut;
    userInfoEndpoint: string | core.StringOut;
}
export interface FixedResponseArgs extends core.SchemaArgs {
    contentType: string | core.StringOut;
    messageBody: string | core.StringOut;
    statusCode: string | core.StringOut;
}
export declare class FixedResponse extends core.Schema<FixedResponseArgs> {
    contentType: string | core.StringOut;
    messageBody: string | core.StringOut;
    statusCode: string | core.StringOut;
}
export interface StickinessArgs extends core.SchemaArgs {
    duration: number | core.NumberOut;
    enabled: boolean | core.BooleanOut;
}
export declare class Stickiness extends core.Schema<StickinessArgs> {
    duration: number | core.NumberOut;
    enabled: boolean | core.BooleanOut;
}
export interface TargetGroupArgs extends core.SchemaArgs {
    arn: string | core.StringOut;
    weight: number | core.NumberOut;
}
export declare class TargetGroup extends core.Schema<TargetGroupArgs> {
    arn: string | core.StringOut;
    weight: number | core.NumberOut;
}
export interface ForwardArgs extends core.SchemaArgs {
    stickiness: core.Array<Stickiness> | core.ArrayOut<Stickiness>;
    targetGroup: core.Array<TargetGroup> | core.ArrayOut<TargetGroup>;
}
export declare class Forward extends core.Schema<ForwardArgs> {
    stickiness: core.Array<Stickiness> | core.ArrayOut<Stickiness>;
    targetGroup: core.Array<TargetGroup> | core.ArrayOut<TargetGroup>;
}
export interface RedirectArgs extends core.SchemaArgs {
    host: string | core.StringOut;
    path: string | core.StringOut;
    port: string | core.StringOut;
    protocol: string | core.StringOut;
    query: string | core.StringOut;
    statusCode: string | core.StringOut;
}
export declare class Redirect extends core.Schema<RedirectArgs> {
    host: string | core.StringOut;
    path: string | core.StringOut;
    port: string | core.StringOut;
    protocol: string | core.StringOut;
    query: string | core.StringOut;
    statusCode: string | core.StringOut;
}
export interface DefaultActionArgs extends core.SchemaArgs {
    authenticateCognito: core.Array<AuthenticateCognito> | core.ArrayOut<AuthenticateCognito>;
    authenticateOidc: core.Array<AuthenticateOidc> | core.ArrayOut<AuthenticateOidc>;
    fixedResponse: core.Array<FixedResponse> | core.ArrayOut<FixedResponse>;
    forward: core.Array<Forward> | core.ArrayOut<Forward>;
    order: number | core.NumberOut;
    redirect: core.Array<Redirect> | core.ArrayOut<Redirect>;
    targetGroupArn: string | core.StringOut;
    type: string | core.StringOut;
}
export declare class DefaultAction extends core.Schema<DefaultActionArgs> {
    authenticateCognito: core.Array<AuthenticateCognito> | core.ArrayOut<AuthenticateCognito>;
    authenticateOidc: core.Array<AuthenticateOidc> | core.ArrayOut<AuthenticateOidc>;
    fixedResponse: core.Array<FixedResponse> | core.ArrayOut<FixedResponse>;
    forward: core.Array<Forward> | core.ArrayOut<Forward>;
    order: number | core.NumberOut;
    redirect: core.Array<Redirect> | core.ArrayOut<Redirect>;
    targetGroupArn: string | core.StringOut;
    type: string | core.StringOut;
}
export interface DsLbListenerArgs {
    arn?: string | core.StringOut;
    loadBalancerArn?: string | core.StringOut;
    port?: number | core.NumberOut;
    tags?: core.Map<string, string> | core.MapOut<core.StringOut>;
}
export declare class DsLbListener extends core.Data<DsLbListenerArgs> {
    alpnPolicy: string | core.StringOut;
    arn?: string | core.StringOut;
    certificateArn: string | core.StringOut;
    defaultAction: core.Array<DefaultAction> | core.ArrayOut<DefaultAction>;
    id: string | core.StringOut;
    loadBalancerArn?: string | core.StringOut;
    port?: number | core.NumberOut;
    protocol: string | core.StringOut;
    sslPolicy: string | core.StringOut;
    tags?: core.Map<string, string> | core.MapOut<core.StringOut>;
    constructor(name: string, args?: DsLbListenerArgs);
    getNamespace(): string;
}
//# sourceMappingURL=ds_lb_listener.d.ts.map