import { Codec, Encoder } from "mongodb-stitch-core-sdk";
export declare enum AwsS3Actions {
    Put = "put",
    SignPolicy = "signPolicy"
}
export declare enum AwsSesActions {
    Send = "send"
}
export declare enum HttpActions {
    Get = "get",
    Post = "post",
    Put = "put",
    Delete = "delete",
    Head = "head",
    Patch = "patch"
}
export declare enum TwilioActions {
    Send = "send"
}
export declare class AwsRuleCreator {
    readonly name: string;
    readonly actions: string[];
    type: string;
    constructor(name: string, actions: string[]);
}
export declare class AwsS3RuleCreator {
    readonly name: string;
    readonly actions: AwsS3Actions[];
    type: string;
    constructor(name: string, actions: AwsS3Actions[]);
}
export declare class AwsSesRuleCreator {
    readonly name: string;
    readonly actions: AwsSesActions[];
    type: string;
    constructor(name: string, actions: AwsSesActions[]);
}
export declare class HttpRuleCreator {
    readonly name: string;
    readonly actions: HttpActions[];
    type: string;
    constructor(name: string, actions: HttpActions[]);
}
export declare class MongoDbRuleCreator {
    readonly namespace: string;
    readonly rule: object;
    type: string;
    constructor(namespace: string, rule: object);
}
export declare class TwilioRuleCreator {
    readonly name: string;
    readonly actions: TwilioActions[];
    type: string;
    constructor(name: string, actions: TwilioActions[]);
}
export declare type RuleCreator = AwsRuleCreator | AwsS3RuleCreator | AwsSesRuleCreator | HttpRuleCreator | MongoDbRuleCreator | TwilioRuleCreator;
export declare class RuleCreatorCodec implements Encoder<RuleCreator> {
    encode(from: RuleCreator): object;
}
export declare class MongoDbCodec implements Encoder<MongoDbRuleCreator> {
    encode(from: MongoDbRuleCreator): object;
}
export declare class RuleResponse {
}
export declare class RuleResponseCodec implements Codec<RuleResponse> {
    encode(from: RuleResponse): object;
    decode(from: any): RuleResponse;
}
