import * as core from "@terrascript/core";
export interface AppSourceArgs extends core.SchemaArgs {
    password?: string | core.StringOut;
    revision?: string | core.StringOut;
    sshKey?: string | core.StringOut;
    type: string | core.StringOut;
    url?: string | core.StringOut;
    username?: string | core.StringOut;
}
export declare class AppSource extends core.Schema<AppSourceArgs> {
    password?: string | core.StringOut;
    revision?: string | core.StringOut;
    sshKey?: string | core.StringOut;
    type: string | core.StringOut;
    url?: string | core.StringOut;
    username?: string | core.StringOut;
}
export interface EnvironmentArgs extends core.SchemaArgs {
    key: string | core.StringOut;
    secure?: boolean | core.BooleanOut;
    value: string | core.StringOut;
}
export declare class Environment extends core.Schema<EnvironmentArgs> {
    key: string | core.StringOut;
    secure?: boolean | core.BooleanOut;
    value: string | core.StringOut;
}
export interface SslConfigurationArgs extends core.SchemaArgs {
    certificate: string | core.StringOut;
    chain?: string | core.StringOut;
    privateKey: string | core.StringOut;
}
export declare class SslConfiguration extends core.Schema<SslConfigurationArgs> {
    certificate: string | core.StringOut;
    chain?: string | core.StringOut;
    privateKey: string | core.StringOut;
}
export interface ApplicationArgs extends core.ResourceArgs {
    appSource?: core.Array<AppSource> | core.ArrayOut<AppSource>;
    autoBundleOnDeploy?: string | core.StringOut;
    awsFlowRubySettings?: string | core.StringOut;
    dataSourceArn?: string | core.StringOut;
    dataSourceDatabaseName?: string | core.StringOut;
    dataSourceType?: string | core.StringOut;
    description?: string | core.StringOut;
    documentRoot?: string | core.StringOut;
    domains?: core.Array<string> | core.ArrayOut<core.StringOut>;
    enableSsl?: boolean | core.BooleanOut;
    environment?: core.Array<Environment> | core.ArrayOut<Environment>;
    name: string | core.StringOut;
    railsEnv?: string | core.StringOut;
    shortName?: string | core.StringOut;
    sslConfiguration?: core.Array<SslConfiguration> | core.ArrayOut<SslConfiguration>;
    stackId: string | core.StringOut;
    type: string | core.StringOut;
}
export declare class Application extends core.Resource<ApplicationArgs> {
    appSource?: core.Array<AppSource> | core.ArrayOut<AppSource>;
    autoBundleOnDeploy?: string | core.StringOut;
    awsFlowRubySettings?: string | core.StringOut;
    dataSourceArn?: string | core.StringOut;
    dataSourceDatabaseName?: string | core.StringOut;
    dataSourceType?: string | core.StringOut;
    description?: string | core.StringOut;
    documentRoot?: string | core.StringOut;
    domains?: core.Array<string> | core.ArrayOut<core.StringOut>;
    enableSsl?: boolean | core.BooleanOut;
    environment?: core.Array<Environment> | core.ArrayOut<Environment>;
    id: string | core.StringOut;
    name: string | core.StringOut;
    railsEnv?: string | core.StringOut;
    shortName?: string | core.StringOut;
    sslConfiguration?: core.Array<SslConfiguration> | core.ArrayOut<SslConfiguration>;
    stackId: string | core.StringOut;
    type: string | core.StringOut;
    constructor(name: string, args?: ApplicationArgs);
    getNamespace(): string;
}
//# sourceMappingURL=application.d.ts.map