import { Codec } from "mongodb-stitch-core-sdk";
export interface ServiceConfig {
    readonly name: string;
    readonly type: string;
    readonly config: object;
    readonly configCodec?: Codec<any>;
}
export declare class ServiceConfigCodec implements Codec<ServiceConfig> {
    decode(from: any): ServiceConfig;
    encode(from: ServiceConfig): object;
}
export declare class Http implements ServiceConfig {
    readonly name: string;
    readonly config: {};
    readonly type: string;
    constructor(name: string);
}
export interface AwsConfig {
    readonly accessKeyId: string;
    readonly secretAccessKey: string;
}
export declare class Aws implements ServiceConfig {
    readonly name: any;
    readonly config: AwsS3Config;
    readonly type: string;
    constructor(name: any, config: AwsS3Config);
}
export interface AwsS3Config {
    readonly region: string;
    readonly accessKeyId: string;
    readonly secretAccessKey: string;
}
export declare class AwsS3 implements ServiceConfig {
    readonly name: any;
    readonly config: AwsS3Config;
    readonly type: string;
    constructor(name: any, config: AwsS3Config);
}
export interface AwsSesConfig {
    readonly region: string;
    readonly accessKeyId: string;
    readonly secretAccessKey: string;
}
export declare class AwsSes implements ServiceConfig {
    readonly name: any;
    readonly config: AwsSesConfig;
    readonly type: string;
    constructor(name: any, config: AwsSesConfig);
}
export declare enum TwilioConfigFields {
    AuthToken = "auth_token",
    AccountSid = "sid"
}
export interface TwilioConfig {
    readonly authToken: string;
    readonly accountSid: string;
}
export declare class TwilioConfigCodec implements Codec<TwilioConfig> {
    decode(from: any): TwilioConfig;
    encode(from: TwilioConfig): object;
}
export declare class Twilio implements ServiceConfig {
    readonly name: any;
    readonly config: TwilioConfig;
    readonly configCodec: TwilioConfigCodec;
    readonly type: string;
    constructor(name: any, config: TwilioConfig);
}
export interface MongoConfig {
    readonly uri: string;
}
export declare class Mongo implements ServiceConfig {
    readonly name: any;
    readonly type: any;
    readonly config: MongoConfig;
    constructor(name: any, type: any, config: MongoConfig);
}
