import * as core from "@terrascript/core";
export interface ElasticsearchConfigArgs extends core.SchemaArgs {
    endpoint: string | core.StringOut;
    region?: string | core.StringOut;
}
export declare class ElasticsearchConfig extends core.Schema<ElasticsearchConfigArgs> {
    endpoint: string | core.StringOut;
    region?: string | core.StringOut;
}
export interface HttpEndpointConfigArgs extends core.SchemaArgs {
    awsSecretStoreArn: string | core.StringOut;
    databaseName?: string | core.StringOut;
    dbClusterIdentifier: string | core.StringOut;
    region?: string | core.StringOut;
    schema?: string | core.StringOut;
}
export declare class HttpEndpointConfig extends core.Schema<HttpEndpointConfigArgs> {
    awsSecretStoreArn: string | core.StringOut;
    databaseName?: string | core.StringOut;
    dbClusterIdentifier: string | core.StringOut;
    region?: string | core.StringOut;
    schema?: string | core.StringOut;
}
export interface RelationalDatabaseConfigArgs extends core.SchemaArgs {
    httpEndpointConfig?: HttpEndpointConfig;
    sourceType?: string | core.StringOut;
}
export declare class RelationalDatabaseConfig extends core.Schema<RelationalDatabaseConfigArgs> {
    httpEndpointConfig?: HttpEndpointConfig;
    sourceType?: string | core.StringOut;
}
export interface DeltaSyncConfigArgs extends core.SchemaArgs {
    baseTableTtl?: number | core.NumberOut;
    deltaSyncTableName: string | core.StringOut;
    deltaSyncTableTtl?: number | core.NumberOut;
}
export declare class DeltaSyncConfig extends core.Schema<DeltaSyncConfigArgs> {
    baseTableTtl?: number | core.NumberOut;
    deltaSyncTableName: string | core.StringOut;
    deltaSyncTableTtl?: number | core.NumberOut;
}
export interface DynamodbConfigArgs extends core.SchemaArgs {
    deltaSyncConfig?: DeltaSyncConfig;
    region?: string | core.StringOut;
    tableName: string | core.StringOut;
    useCallerCredentials?: boolean | core.BooleanOut;
    versioned?: boolean | core.BooleanOut;
}
export declare class DynamodbConfig extends core.Schema<DynamodbConfigArgs> {
    deltaSyncConfig?: DeltaSyncConfig;
    region?: string | core.StringOut;
    tableName: string | core.StringOut;
    useCallerCredentials?: boolean | core.BooleanOut;
    versioned?: boolean | core.BooleanOut;
}
export interface AwsIamConfigArgs extends core.SchemaArgs {
    signingRegion?: string | core.StringOut;
    signingServiceName?: string | core.StringOut;
}
export declare class AwsIamConfig extends core.Schema<AwsIamConfigArgs> {
    signingRegion?: string | core.StringOut;
    signingServiceName?: string | core.StringOut;
}
export interface AuthorizationConfigArgs extends core.SchemaArgs {
    authorizationType?: string | core.StringOut;
    awsIamConfig?: AwsIamConfig;
}
export declare class AuthorizationConfig extends core.Schema<AuthorizationConfigArgs> {
    authorizationType?: string | core.StringOut;
    awsIamConfig?: AwsIamConfig;
}
export interface HttpConfigArgs extends core.SchemaArgs {
    authorizationConfig?: AuthorizationConfig;
    endpoint: string | core.StringOut;
}
export declare class HttpConfig extends core.Schema<HttpConfigArgs> {
    authorizationConfig?: AuthorizationConfig;
    endpoint: string | core.StringOut;
}
export interface LambdaConfigArgs extends core.SchemaArgs {
    functionArn: string | core.StringOut;
}
export declare class LambdaConfig extends core.Schema<LambdaConfigArgs> {
    functionArn: string | core.StringOut;
}
export interface DatasourceArgs extends core.ResourceArgs {
    apiId: string | core.StringOut;
    description?: string | core.StringOut;
    dynamodbConfig?: DynamodbConfig;
    elasticsearchConfig?: ElasticsearchConfig;
    httpConfig?: HttpConfig;
    lambdaConfig?: LambdaConfig;
    name: string | core.StringOut;
    relationalDatabaseConfig?: RelationalDatabaseConfig;
    serviceRoleArn?: string | core.StringOut;
    type: string | core.StringOut;
}
export declare class Datasource extends core.Resource<DatasourceArgs> {
    apiId: string | core.StringOut;
    arn: string | core.StringOut;
    description?: string | core.StringOut;
    dynamodbConfig?: DynamodbConfig;
    elasticsearchConfig?: ElasticsearchConfig;
    httpConfig?: HttpConfig;
    id: string | core.StringOut;
    lambdaConfig?: LambdaConfig;
    name: string | core.StringOut;
    relationalDatabaseConfig?: RelationalDatabaseConfig;
    serviceRoleArn?: string | core.StringOut;
    type: string | core.StringOut;
    constructor(name: string, args?: DatasourceArgs);
    getNamespace(): string;
}
//# sourceMappingURL=datasource.d.ts.map