import * as core from "@terrascript/core";
export interface LogConfigArgs extends core.SchemaArgs {
    cloudwatchLogsRoleArn: string | core.StringOut;
    excludeVerboseContent?: boolean | core.BooleanOut;
    fieldLogLevel: string | core.StringOut;
}
export declare class LogConfig extends core.Schema<LogConfigArgs> {
    cloudwatchLogsRoleArn: string | core.StringOut;
    excludeVerboseContent?: boolean | core.BooleanOut;
    fieldLogLevel: string | core.StringOut;
}
export interface UserPoolConfigArgs extends core.SchemaArgs {
    appIdClientRegex?: string | core.StringOut;
    awsRegion?: string | core.StringOut;
    defaultAction: string | core.StringOut;
    userPoolId: string | core.StringOut;
}
export declare class UserPoolConfig extends core.Schema<UserPoolConfigArgs> {
    appIdClientRegex?: string | core.StringOut;
    awsRegion?: string | core.StringOut;
    defaultAction: string | core.StringOut;
    userPoolId: string | core.StringOut;
}
export interface LambdaAuthorizerConfigArgs extends core.SchemaArgs {
    authorizerResultTtlInSeconds?: number | core.NumberOut;
    authorizerUri: string | core.StringOut;
    identityValidationExpression?: string | core.StringOut;
}
export declare class LambdaAuthorizerConfig extends core.Schema<LambdaAuthorizerConfigArgs> {
    authorizerResultTtlInSeconds?: number | core.NumberOut;
    authorizerUri: string | core.StringOut;
    identityValidationExpression?: string | core.StringOut;
}
export interface OpenidConnectConfigArgs extends core.SchemaArgs {
    authTtl?: number | core.NumberOut;
    clientId?: string | core.StringOut;
    iatTtl?: number | core.NumberOut;
    issuer: string | core.StringOut;
}
export declare class OpenidConnectConfig extends core.Schema<OpenidConnectConfigArgs> {
    authTtl?: number | core.NumberOut;
    clientId?: string | core.StringOut;
    iatTtl?: number | core.NumberOut;
    issuer: string | core.StringOut;
}
export interface AdditionalAuthenticationProviderUserPoolConfigArgs extends core.SchemaArgs {
    appIdClientRegex?: string | core.StringOut;
    awsRegion?: string | core.StringOut;
    userPoolId: string | core.StringOut;
}
export declare class AdditionalAuthenticationProviderUserPoolConfig extends core.Schema<AdditionalAuthenticationProviderUserPoolConfigArgs> {
    appIdClientRegex?: string | core.StringOut;
    awsRegion?: string | core.StringOut;
    userPoolId: string | core.StringOut;
}
export interface AdditionalAuthenticationProviderArgs extends core.SchemaArgs {
    authenticationType: string | core.StringOut;
    lambdaAuthorizerConfig?: LambdaAuthorizerConfig;
    openidConnectConfig?: OpenidConnectConfig;
    userPoolConfig?: AdditionalAuthenticationProviderUserPoolConfig;
}
export declare class AdditionalAuthenticationProvider extends core.Schema<AdditionalAuthenticationProviderArgs> {
    authenticationType: string | core.StringOut;
    lambdaAuthorizerConfig?: LambdaAuthorizerConfig;
    openidConnectConfig?: OpenidConnectConfig;
    userPoolConfig?: AdditionalAuthenticationProviderUserPoolConfig;
}
export interface GraphqlApiArgs extends core.ResourceArgs {
    additionalAuthenticationProvider?: core.Array<AdditionalAuthenticationProvider> | core.ArrayOut<AdditionalAuthenticationProvider>;
    authenticationType: string | core.StringOut;
    lambdaAuthorizerConfig?: LambdaAuthorizerConfig;
    logConfig?: LogConfig;
    name: string | core.StringOut;
    openidConnectConfig?: OpenidConnectConfig;
    schema?: string | core.StringOut;
    tags?: core.Map<string, string> | core.MapOut<core.StringOut>;
    tagsAll?: core.Map<string, string> | core.MapOut<core.StringOut>;
    userPoolConfig?: UserPoolConfig;
    xrayEnabled?: boolean | core.BooleanOut;
}
export declare class GraphqlApi extends core.Resource<GraphqlApiArgs> {
    additionalAuthenticationProvider?: core.Array<AdditionalAuthenticationProvider> | core.ArrayOut<AdditionalAuthenticationProvider>;
    arn: string | core.StringOut;
    authenticationType: string | core.StringOut;
    id: string | core.StringOut;
    lambdaAuthorizerConfig?: LambdaAuthorizerConfig;
    logConfig?: LogConfig;
    name: string | core.StringOut;
    openidConnectConfig?: OpenidConnectConfig;
    schema?: string | core.StringOut;
    tags?: core.Map<string, string> | core.MapOut<core.StringOut>;
    tagsAll?: core.Map<string, string> | core.MapOut<core.StringOut>;
    uris: core.Map<string, string> | core.MapOut<core.StringOut>;
    userPoolConfig?: UserPoolConfig;
    xrayEnabled?: boolean | core.BooleanOut;
    constructor(name: string, args?: GraphqlApiArgs);
    getNamespace(): string;
}
//# sourceMappingURL=graphql_api.d.ts.map