import { ResourceBase } from "../../resource";
import { Value } from "../../data-types";
export declare class AwsIamConfig {
    SigningRegion?: Value<string>;
    SigningServiceName?: Value<string>;
    constructor(properties: AwsIamConfig);
}
export declare class DeltaSyncConfig {
    BaseTableTTL: Value<string>;
    DeltaSyncTableTTL: Value<string>;
    DeltaSyncTableName: Value<string>;
    constructor(properties: DeltaSyncConfig);
}
export declare class RelationalDatabaseConfig {
    RdsHttpEndpointConfig?: RdsHttpEndpointConfig;
    RelationalDatabaseSourceType: Value<string>;
    constructor(properties: RelationalDatabaseConfig);
}
export declare class AuthorizationConfig {
    AwsIamConfig?: AwsIamConfig;
    AuthorizationType: Value<string>;
    constructor(properties: AuthorizationConfig);
}
export declare class LambdaConfig {
    LambdaFunctionArn: Value<string>;
    constructor(properties: LambdaConfig);
}
export declare class HttpConfig {
    Endpoint: Value<string>;
    AuthorizationConfig?: AuthorizationConfig;
    constructor(properties: HttpConfig);
}
export declare class DynamoDBConfig {
    TableName: Value<string>;
    AwsRegion: Value<string>;
    Versioned?: Value<boolean>;
    DeltaSyncConfig?: DeltaSyncConfig;
    UseCallerCredentials?: Value<boolean>;
    constructor(properties: DynamoDBConfig);
}
export declare class ElasticsearchConfig {
    AwsRegion: Value<string>;
    Endpoint: Value<string>;
    constructor(properties: ElasticsearchConfig);
}
export declare class RdsHttpEndpointConfig {
    AwsRegion: Value<string>;
    Schema?: Value<string>;
    DatabaseName?: Value<string>;
    DbClusterIdentifier: Value<string>;
    AwsSecretStoreArn: Value<string>;
    constructor(properties: RdsHttpEndpointConfig);
}
export interface DataSourceProperties {
    RelationalDatabaseConfig?: RelationalDatabaseConfig;
    LambdaConfig?: LambdaConfig;
    DynamoDBConfig?: DynamoDBConfig;
    HttpConfig?: HttpConfig;
    Name: Value<string>;
    ServiceRoleArn?: Value<string>;
    ApiId: Value<string>;
    Type: Value<string>;
    Description?: Value<string>;
    ElasticsearchConfig?: ElasticsearchConfig;
}
export default class Inner_DataSource extends ResourceBase<DataSourceProperties> {
    static AwsIamConfig: typeof AwsIamConfig;
    static DeltaSyncConfig: typeof DeltaSyncConfig;
    static RelationalDatabaseConfig: typeof RelationalDatabaseConfig;
    static AuthorizationConfig: typeof AuthorizationConfig;
    static LambdaConfig: typeof LambdaConfig;
    static HttpConfig: typeof HttpConfig;
    static DynamoDBConfig: typeof DynamoDBConfig;
    static ElasticsearchConfig: typeof ElasticsearchConfig;
    static RdsHttpEndpointConfig: typeof RdsHttpEndpointConfig;
    constructor(properties: DataSourceProperties);
}
